N'String' 最佳答案 试试这个:它-6ren">
gpt4 book ai didi

C# 数据类型到 SQL Server 数据类型

转载 作者:太空狗 更新时间:2023-10-30 00:15:49 26 4
gpt4 key购买 nike

如何将 C# 数据类型“转换”为 SQL Server 数据类型(SqlDbType 已知)

即:

C# -> "String"
SQL Server -> N'String'

最佳答案

试试这个:它是一个扩展类,所以在你想要使用这些方法的文件上添加:

using Utility;

代码如下:

using System;
using System.Data;
using Microsoft.SqlServer.Server;

namespace Utility
{
public static class TypeExtension
{
public static SqlDbType ToSqlDbType(this Type clrType)
{
var s = new SqlMetaData("", SqlDbType.NVarChar, clrType);
return s.SqlDbType;
}


public static Type ToClrType(SqlDbType sqlType)
{
switch (sqlType)
{
case SqlDbType.BigInt:
return typeof (long?);

case SqlDbType.Binary:
case SqlDbType.Image:
case SqlDbType.Timestamp:
case SqlDbType.VarBinary:
return typeof (byte[]);

case SqlDbType.Bit:
return typeof (bool?);

case SqlDbType.Char:
case SqlDbType.NChar:
case SqlDbType.NText:
case SqlDbType.NVarChar:
case SqlDbType.Text:
case SqlDbType.VarChar:
case SqlDbType.Xml:
return typeof (string);

case SqlDbType.DateTime:
case SqlDbType.SmallDateTime:
case SqlDbType.Date:
case SqlDbType.Time:
case SqlDbType.DateTime2:
return typeof (DateTime?);

case SqlDbType.Decimal:
case SqlDbType.Money:
case SqlDbType.SmallMoney:
return typeof (decimal?);

case SqlDbType.Float:
return typeof (double?);

case SqlDbType.Int:
return typeof (int?);

case SqlDbType.Real:
return typeof (float?);

case SqlDbType.UniqueIdentifier:
return typeof (Guid?);

case SqlDbType.SmallInt:
return typeof (short?);

case SqlDbType.TinyInt:
return typeof (byte?);

case SqlDbType.Variant:
case SqlDbType.Udt:
return typeof (object);

case SqlDbType.Structured:
return typeof (DataTable);

case SqlDbType.DateTimeOffset:
return typeof (DateTimeOffset?);

default:
throw new ArgumentOutOfRangeException("sqlType");
}
}
}
}

关于C# 数据类型到 SQL Server 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10997526/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com