(一)C#与SQL Server 2005(或以下版本):
C# | C#取值 | SQL Server | SQL Server取值 |
System.DateTime | samlltime | ||
System.Object | variant |
(二)C#与SQL Server 2008(或以上版本):
C# | C#取值 | SQL Server | SQL Server取值 |
System.Boolean | true/false | bit | 1/0 |
System.SByte | -128~127 |
| |
System.Byte | 0~255 | tinyint | 0~255 |
System.Int16 | -32768~32767 | smallint | -32768~32767 |
System.UInt16 | 0~65535 |
| |
System.Int32 | -2147483648~2147483647 | int | -2147483648~2147483647 |
System.UInt32 | 0~4294967295 |
| |
System.Int64 | -9223372036854775808~ 9223372036854775807L | bigint | -9223372036854775808~9223372036854775807 |
System.UInt64 | 0~18446744073709551615UL |
| |
System.Single | real | ||
System.Double | float | ||
System.Decimal | smallmoney | -214748.3648~214748.3647 | |
money | -922337203685477.5808~922337203685477.5807 | ||
decimal | -999999999999999999.49~999999999999999999.49 | ||
numeric | 1~38位 | ||
System.Char |
| ||
System.String | char | 1~8000 | |
varchar | 1~8000 | ||
nchar | 1~4000 | ||
nvarchar | 1~4000 | ||
text | |||
ntext | |||
time | 00:00:00.0000000~23:59:59.9999999 | ||
System.DateTime | date | 0001-01-01~9999-12-31 | |
smalldatetime | |||
datetime | 1753-01-01 00:00:00:000~9999-12-31 23:59:59.997 | ||
datetime2 | |||
datetimeoffset | |||
System.Byte[] | timestamp | ||
image | |||
binary | |||
varbinary | |||
System.Guid | uniqueidentifier | ||
System.Object | sql_variant |
(三)根据数据库数据类型字符,获取C#中对应的数据类型字符
1 /// <summary> 2 /// 将数据库数据类型字符串,转为C#数据类型字符串。 3 /// </summary> 4 /// <param name="dbType">数据库数据类型字符串。</param> 5 /// <returns>C#数据类型字符串。</returns> 6 private static string DBTypeToCSharpType(string dbType) 7 { 8 string cSharpType = string.Empty; 9 switch (dbType.ToLower()) 10 { 11 case "bit": 12 cSharpType = "bool"; 13 break; 14 case "tinyint": 15 cSharpType = "byte"; 16 break; 17 case "smallint": 18 cSharpType = "short"; 19 break; 20 case "int": 21 cSharpType = "int"; 22 break; 23 case "bigint": 24 cSharpType = "long"; 25 break; 26 case "real": 27 cSharpType = "float"; 28 break; 29 case "float": 30 cSharpType = "double"; 31 break; 32 case "smallmoney": 33 case "money": 34 case "decimal": 35 case "numeric": 36 cSharpType = "decimal"; 37 break; 38 case "char": 39 case "varchar": 40 case "nchar": 41 case "nvarchar": 42 case "text": 43 case "ntext": 44 cSharpType = "string"; 45 break; 46 case "samlltime": 47 case "date": 48 case "smalldatetime": 49 case "datetime": 50 case "datetime2": 51 case "datetimeoffset": 52 cSharpType = "System.DateTime"; 53 break; 54 case "timestamp": 55 case "image": 56 case "binary": 57 case "varbinary": 58 cSharpType = "byte[]"; 59 break; 60 case "uniqueidentifier": 61 cSharpType = "System.Guid"; 62 break; 63 case "variant": 64 case "sql_variant": 65 cSharpType = "object"; 66 break; 67 default: 68 cSharpType = "string"; 69 break; 70 } 71 return cSharpType; 72 }