您的位置:首页 > 数据库

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

2010-05-21 11:03 411 查看
我们知道,在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方法来判断下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: