ADO.NET和SQL SERVER数据库中的数据类型对应关系

我们知道,在SQL SERVER中有Bit, Float, Int , Char等等一系列的数据类型,而在DOT NET中,有Boolean,Double,Int 32,String等数据类型与之对应。 也就是说,数据库中的数据类型与DOT NET的数据类型之间,有一个映射关系。下表是他们的映射关系:
 
dot net中的数据类型                            Sql server 中的数据类型

Boolean                                                 Bit
Byte                                                     TinyInt
byte[]                                                    VarBinary
DataTime                                             DateTime
Decimal                                                Decimal
Double                                                 Float(注意SQLSERVER中没有Double类型)
Float                                                    Real
Guid                                                      Guid
Int16                                                     SmallInt
Int32                                                     Int
Int64                                                     BigInt
Object                                                   Variant
String                                                    NVarChar
String                                                    VarChar
String                                                    Char
String                                                     Money
String                                                     WChar
String                                                     Text
DBNull                                                   Null
 
注意:
1.如果我们要分别获得表A的第一列的“数据库类型”或“该列对应的dotNet数据类型”,我们可以分别用SqlDataReader.GetDataTypeName() {返回“数据库类型”}或 SqlReader.GetFieldType(){返回“对应的dotNet数据类型”}来获取。
2.Null在数据库中被看做是一个很特别的值,并不是指没有值。因此,任何数据库访问技术(如ADO.NET)时,都要对数据库中为NULL的字段做特别的处理。在ADO.NET中,把数据库中为NULL的字段看成为DBNull类型,即:数据库中的NULL类型对应dot Net中的DBNull类型。
当我们使用DataReader对象的GetValue()或GetValues()【UnTyped-Accessor类型,见决战.net数据库开发圣典P21】来取得数据库中为NULL的字段时,DOTNET会把数据库中的特殊值NULL转换成DBNull对象。
但是,当我们使用圣典GetChar等这类Typed-Accessor来获取数据库中为NULL类型的字段时,将会报错。所以,我们在使用Typed-Accessor类型访问函数访问数据库时,最好通过DataReader.IsDBNull方法来判断下。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值