SQL SERVER数据类型与C#数据类型对照表
SQL SERVER类型 |
|
C#类型 |
|
精确数字 |
bigint |
从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。 |
Int64 |
int |
从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。 |
Int32 |
|
smallint |
从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。 |
Int16 |
|
tinyint |
从 0 到 255 的整型数据。存储大小为 1 字节。 |
System.Byte |
|
bit |
1 或 0 的整数数据。 |
Boolean |
|
decimal |
从 -10^38 +1 到 10^38 –1 的固定精度和小数位的数字数据。 |
System.Decimal |
|
numeric |
功能上等同于 decimal。 |
System.Decimal |
|
money |
货币数据值介于 -2^63 (-922,337,203,685,477.5808) 与 2^63 - 1 (+922,337,203,685,477.5807) 之间,精确到货币单位的千分之十。 |
System.Decimal |
|
smallmoney |
货币数据值介于 -214,748.3648 与 +214,748.3647 之间,精确到货币单位的千分之十。 |
System.Decimal |
|
近似数字 |
float |
从 -1.79E + 308 到 1.79E + 308 的浮点精度数字。 |
System.Double |
real |
从 -3.40E + 38 到 3.40E + 38 的浮点精度数字。 |
System.Single |
|
时间 |
datetime |
从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确到百分之三秒(或 3.33 毫秒)。 |
System.DateTime |
smalldatetime |
从 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间数据,精确到分钟。 |
System.DateTime |
|
date |
0001-01-01 到 9999-12-31 (YYYY-MM-DD) |
System.DateTime |
|
字符串 |
char |
固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。 |
String |
varchar |
可变长度的非 Unicode 数据,最长为 8,000 个字符。 |
String |
|
text |
可变长度的非 Unicode 数据,最大长度为 2^31 - 1 (2,147,483,647) 个字符。 |
String |
|
Unicode 字符串 |
nchar |
固定长度的 Unicode 数据,最大长度为 4,000 个字符。 |
String |
nvarchar |
可变长度 Unicode 数据,其最大长度为 4,000 字符。sysname 是系统提供用户定义的数据类型,在功能上等同于 nvarchar(128),用于引用数据库对象名。 |
String |
|
ntext |
可变长度 Unicode 数据,其最大长度为 2^30 - 1 (1,073,741,823) 个字符。 |
String |
|
二进制字符串 |
binary |
固定长度的二进制数据,其最大长度为 8,000 个字节。 |
System.Byte[] |
varbinary |
可变长度的二进制数据,其最大长度为 8,000 个字节。 |
System.Byte[] |
|
image |
可变长度的二进制数据,其最大长度为 2^31 - 1 (2,147,483,647) 个字节。 |
System.Byte[] |
|
其它数据类型 |
timestamp |
数据库范围的唯一数字,每次更新行时也进行更新。 |
System.DateTime |
uniqueidentifier |
全局唯一标识符 (GUID)。 |
System.Guid |
|
Variant |
|
Object |
/// <summary>
/// 将SQLServer数据类型(如:varchar)转换为.Net类型(如:String)
/// </summary>
/// <param name="sqlTypeString">SQLServer数据类型</param>
/// <returns></returns>
public static string SqlTypeName2DotNetType(string sqlTypeString)
{
string[] SqlTypeNames = new string[] { "int", "varchar","bit" ,"datetime","decimal","float","image","money",
"ntext","nvarchar","smalldatetime","smallint","text","bigint","binary","char","nchar","numeric",
"real","smallmoney", "sql_variant","timestamp","tinyint","uniqueidentifier","varbinary"};
string[] DotNetTypes = new string[] {"int", "string","bool" ,"DateTime","Decimal","Double","Byte[]","Single",
"string","string","DateTime","Int16","string","Int64","Byte[]","string","string","Decimal",
"Single","Single", "Object","Byte[]","Byte","Guid","Byte[]"};
int i = Array.IndexOf(SqlTypeNames, sqlTypeString.ToLower());
return DotNetTypes[i];
}