首页 / 综合文章 / 正文

SQL Server类型与C#类型对应关系--好文要收藏[转载]

9012 发布于: 2015-01-13 读完约需14分钟
开发中遇到实体与数据表的字段映射时,我们需要清楚地知道SQL Server类型与C#类型的一一对应关系,现转载一篇SQL Server类型与C#类型对应关系的文章,具体对应表如下:
SQL Server类型 C#类型
bit bool
tinyint byte
smallint short
int int
bigint long
real float
float double
money decimal
datetime DateTime
char string
varchar string
nchar string
nvarchar string
text string
ntext string
image byte[]
binary byte[]
uniqueidentifier Guid
// SqlDbType转换为C#数据类型
public static Type SqlType2CsharpType(SqlDbType sqlType)
{
switch (sqlType)
{
       case SqlDbType.BigInt:
         return typeof(Int64);
       case SqlDbType.Binary:
         return typeof(Object);
       case SqlDbType.Bit:
         return typeof(Boolean);
       case SqlDbType.Char:
         return typeof(String);
       case SqlDbType.DateTime:
         return typeof(DateTime);
       case SqlDbType.Decimal:
         return typeof(Decimal);
       case SqlDbType.Float:
         return typeof(Double);
       case SqlDbType.Image:
         return typeof(Object);
       case SqlDbType.Int:
         return typeof(Int32);
       case SqlDbType.Money:
         return typeof(Decimal);
       case SqlDbType.NChar:
         return typeof(String);
       case SqlDbType.NText:
         return typeof(String);
       case SqlDbType.NVarChar:
         return typeof(String);
       case SqlDbType.Real:
         return typeof(Single);
       case SqlDbType.SmallDateTime:
         return typeof(DateTime);
       case SqlDbType.SmallInt:
         return typeof(Int16);
       case SqlDbType.SmallMoney:
         return typeof(Decimal);
       case SqlDbType.Text:
         return typeof(String);
       case SqlDbType.Timestamp:
         return typeof(Object);
       case SqlDbType.TinyInt:
         return typeof(Byte);
       case SqlDbType.Udt://自定义的数据类型
         return typeof(Object);
       case SqlDbType.UniqueIdentifier:
         return typeof(Object);
       case SqlDbType.VarBinary:
         return typeof(Object);
       case SqlDbType.VarChar:
         return typeof(String);
       case SqlDbType.Variant:
         return typeof(Object);
       case SqlDbType.Xml:
         return typeof(Object);
       default:
         return null;
}
}
// sql server数据类型(如:varchar)
// 转换为SqlDbType类型
public static SqlDbType SqlTypeString2SqlType(string sqlTypeString)
{
SqlDbType dbType = SqlDbType.Variant;//默认为Object

switch (sqlTypeString)
{
       case "int":
         dbType = SqlDbType.Int;
         break;
       case "varchar":
         dbType = SqlDbType.VarChar;
         break;
       case "bit":
         dbType = SqlDbType.Bit;
         break;
       case "datetime":
         dbType = SqlDbType.DateTime;
         break;
       case "decimal":
         dbType = SqlDbType.Decimal;
         break;
       case "float":
         dbType = SqlDbType.Float;
         break;
       case "image":
         dbType = SqlDbType.Image;
         break;
       case "money":
         dbType = SqlDbType.Money;
         break;
       case "ntext":
         dbType = SqlDbType.NText;
         break;
       case "nvarchar":
         dbType = SqlDbType.NVarChar;
         break;
       case "smalldatetime":
         dbType = SqlDbType.SmallDateTime;
         break;
       case "smallint":
         dbType = SqlDbType.SmallInt;
         break;
       case "text":
         dbType = SqlDbType.Text;
         break;
       case "bigint":
         dbType = SqlDbType.BigInt;
         break;
       case "binary":
         dbType = SqlDbType.Binary;
         break;
       case "char":
         dbType = SqlDbType.Char;
         break;
       case "nchar":
         dbType = SqlDbType.NChar;
         break;
       case "numeric":
         dbType = SqlDbType.Decimal;
         break;
       case "real":
         dbType = SqlDbType.Real;
         break;
       case "smallmoney":
         dbType = SqlDbType.SmallMoney;
         break;
       case "sql_variant":
         dbType = SqlDbType.Variant;
         break;
       case "timestamp":
         dbType = SqlDbType.Timestamp;
         break;
       case "tinyint":
         dbType = SqlDbType.TinyInt;
         break;
       case "uniqueidentifier":
         dbType = SqlDbType.UniqueIdentifier;
         break;
       case "varbinary":
         dbType = SqlDbType.VarBinary;
         break;
       case "xml":
         dbType = SqlDbType.Xml;
         break;
}
return dbType;
}
 
// sql server中的数据类型,转换为C#中的类型类型
public static Type SqlTypeString2CsharpType(string sqlTypeString)
{
SqlDbType dbTpe = SqlTypeString2SqlType(sqlTypeString);

return SqlType2CsharpType(dbTpe);
}

// 将sql server中的数据类型,转化为C#中的类型的字符串
public static string SqlTypeString2CsharpTypeString(string sqlTypeString)
{
Type type = SqlTypeString2CsharpType(sqlTypeString);

return type.Name;
}
 

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: Windows 10 的又一惊喜--Spartan浏览器?

下一篇: C#使用泛型定义返回值为List列表的方法[整理]

本文永久链接码友网 » SQL Server类型与C#类型对应关系--好文要收藏[转载]

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册