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方法來判斷下。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章