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方法来判断下。
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方法来判断下。
相关文章推荐
- ADO.NET Entity framework 中 实体的对应数据库中text类型的问题 (更新) :asp.net entity 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 3 ("@0"): 数据类型 0
- Access-数据类型与.net OleDbType枚举类型对应关系
- ADO.NET和SQL SERVER数据库中的数据类型
- sql 数据类型和 .net/C#的类型对应关系
- Sql与Asp.Net数据类型对应关系表
- Access 中的数据类型与 ADO中的数据类型的 对应关系
- MyBatis JdbcType 与Oracle、MySql数据类型对应关系详解
- ADO.NET+Access: 1,标准表达式中数据类型不匹配
- C#数据类型、控件、数据类型、ADO.NET等命名规范
- 如何使用C#和ADO.NET在SQL Server数据库读取和写入blob数据
- SQL与C++的数据类型对应关系(网上资料搜集整理)
- SQL SERVER与C#中数据类型的对应关系 abaowu [原作]
- SQL Server 与ORACLE数据类型转换对应关系
- (转)C#中调用Windows API时的数据类型对应关系
- C#中调用Windows API时的数据类型对应关系
- MyBatis JdbcType 与Oracle、MySql数据类型对应关系详解
- JAVA数据类型与DB2、Oracle、Sybase以及SQL Server对应关系
- MyBatis JdbcType 与Oracle、MySql数据类型对应关系详解
- 解决VS2013使用MySQL无法创建ADO.NET实体数据类型的问题
- MySQL与Oracle数据类型对应关系(表格形式)