您的位置:首页 > 数据库

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

2006-01-17 17:00 781 查看
这是我在开发多层体系结构时遇到的问题,由于VS.NET尚不支持各种数据类型的空值即null,放入实体类中在各个层之间作为参数传递,所以经查询参考SQL Server 2000的联机丛书和.NET的MSDN Library以及在编写代码生成时结合CodeSmith的数据类型,总结找出如下的类型对照解决方案,将其放在一个公用类或公用方法工程的类中使用即可,遇到各种数据类型的空值即可这样进行处理。
[align=center]SQL Server 2000[/b][/align][align=center]C#[/b][/align][align=center]CodeSmith[/b][/align]
[align=center]数据类型[/b][/b][/align][align=center]取值范围[/b][/b][/align][align=center]数据类型[/b][/b][/align][align=center]取值范围[/b][/b][/align][align=center]空值代替值[/b][/b][/align][align=center]数据类型[/b][/b][/align]
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;即十六进制的 0x7FFFFFFFFFFFFFFFInt64.MinValueInt64
binary固定长度的 n 个字节二进制数据。N 必须从 1 到 8,000。存储空间大小为 n+4 字节。Byte[]nullBinary
bitTrue,Falseenum0,1,-1(使用一个枚举变量来代替)
[align=left]public enum bitNull [/align]
[align=left]{[/align]
[align=left] False,[/align]
[align=left] True,[/align]
[align=left] Null = -1[/align]
[align=left]};[/align]
-1Boolean
char长度为 n 个字节的固定长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为 n 个字节。stringnullAnsiStringFixedLength
datetime存储从 1753 年 1 月 1 日至 9999 年 12 月 31 日的日期(每个数值要求 8 个字节的存储空间)DateTime0001 年 1 月 1 日 00:00:00 .0000000至9999 年 12 月 31 日 23:59:59.99999991753-01-01 0:00:00DateTime
decimal从 - 10^38 +1 到 10^38 - 1Decimal-79,228,162,514,264,337,593,543,950,335至79,228,162,514,264,337,593,543,950,335Decimal.MinValueDecimal
float从 - 1.79E + 308 到 1.79E + 308 之间的浮点数字数据Double-1.79769313486232e308至+1.79769313486232e308Double.MinValueDouble
image可变长度二进制数据介于 0 与 231-1 (2,147,483,647) 字节之间。Byte[]
本文出自 “努力学习的小熊” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐