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

来源:互联网 发布:账户余额表数据库设计 编辑:程序博客网 时间:2024/05/17 23:20
我们知道,在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方法来判断下。
原创粉丝点击