C#与SQL Server之间的数据类型对比及在VS2003中空值传递的解决办法(上)

这是我在开发多层体系结构时遇到的问题,由于 VS.NET 尚不支持各种数据类型的空值即 null ,放入实体类中在各个层之间作为参数传递,所以经查询参考 SQL Server 2000 的联机丛书和 .NET M SD N Library 以及在编写代码生成时结合 CodeSmith 的数据类型,总结找出如下的类型对照解决方案,将其放在一个公用类或公用方法工程的类中使用即可,遇到各种数据类型的空值即可这样进行处理。
SQL Server 2000
C#
CodeSmith
数据类型
取值范围
数据类型
取值范围
空值代替值
数据类型
bigint
-2^63 (-9,223,372,036,854,775,807) 2^63-1 (9,223,372,036,854,775,807)
Int64
-9,223,372,036,854,775,808 ;即十六进制的 0x8000000000000000 9,223,372,036,854,775,807 ;即十六进制的 0x7FFFFFFFFFFFFFFF
Int64.MinValue
Int64
binary
固定长度的 n 个字节二进制数据。 N 必须从 1 8,000 。存储空间大小为 n+4 字节。
Byte[]
 
null
Binary
bit
True False
enum
0 1 -1 (使用一个枚举变量来代替)
public enum bitNull   
{
    False,
    True,
    Null = -1
};
- 1
Boolean
char
长度为 n 个字节的固定长度且非 Unicode 的字符数据。 n 必须是一个介于 1 8,000 之间的数值。存储大小为 n 个字节。
string
 
null
AnsiStringFixedLength
datetime
存储从 1753 1 1 日至 9999 12 31 日的日期(每个数值要求 8 个字节的存储空间)
DateTime
0001 1 1 00:00:00 .0000000 9999 12 31 23:59:59. 9999 999
1753-01-01 0:00:00
DateTime
decimal
- 10^38 +1 10^38 - 1
Decimal
-79,228,162,514,264,337,593,543,950,335 79,228,162,514,264,337,593,543,950,335
Decimal.MinValue
Decimal
float
- 1.79E + 308 1.79E + 308 之间的浮点数字数据
Double
-1.79769313486232e308 +1.79769313486232e308
Double.MinValue
Double
image
可变长度二进制数据介于 0 231-1 (2,147,483,647) 字节之间。
Byte[]
 

本文出自 “努力学习的小熊” 博客,转载请与作者联系!

你可能感兴趣的:(sql,server,数据,类型,办法)