SQL Server 資料型別對應 (ADO.NET)
SQL Server 和 .NET Framework 是以不同的型別系統為基礎。 例如,.NET Framework Decimal 結構的最大小數點位數為 28,而 SQL Server decimal 和 numeric 資料型別的最大小數點位數為 38。 為了在讀取和寫入資料時維持資料完整性,SqlDataReader 會公開 (Expose) SQL Server 特有的具型別存取子方法 (可傳回 System.Data.SqlTypes 的物件) 以及存取子方法 (可傳回 .NET Framework 型別)。 SQL Server 型別和 .NET Framework 型別也會由 DbType 和 SqlDbType 類別 (Class) 中的列舉型別 (Enumeration) 表示,而且您可以在指定 SqlParameter 資料型別時使用這些類別。
下表將顯示推斷的 .NET Framework 型別、DbType 和 SqlDbType 列舉型別,以及 SqlDataReader 的存取子方法。
SQL Server Database Engine 型別 |
.NET Framework 型別 |
SqlDbType 列舉型別 |
SqlDataReader SqlTypes 具型別的存取子 |
DbType 列舉型別 |
SqlDataReader DbType 具型別的存取子 |
---|---|---|---|---|---|
bigint |
Int64 |
||||
binary |
Byte[] |
||||
bit |
Boolean |
||||
char |
String Char[] |
||||
date (僅限 SQL Server 2008) |
DateTime |
||||
datetime |
DateTime |
||||
datetime2 (僅限 SQL Server 2008) |
DateTime2 |
||||
datetimeoffset (僅限 SQL Server 2008) |
DateTimeOffset |
無 |
|||
decimal |
Decimal |
||||
FILESTREAM 屬性 (varbinary(max) |
Byte[] |
||||
float |
Double |
||||
image |
Byte[] |
||||
int |
Int32 |
||||
money |
Decimal |
||||
nchar |
String Char[] |
||||
ntext |
String Char[] |
||||
numeric |
Decimal |
||||
nvarchar |
String Char[] |
||||
real |
Single |
||||
rowversion |
Byte[] |
||||
smalldatetime |
DateTime |
||||
smallint |
Int16 |
||||
smallmoney |
Decimal |
||||
sql_variant |
Object * |
GetValue * |
|||
text |
String Char[] |
||||
time (僅限 SQL Server 2008) |
TimeSpan |
無 |
|||
timestamp |
Byte[] |
||||
tinyint |
Byte |
||||
uniqueidentifier |
Guid |
||||
varbinary |
Byte[] |
||||
varchar |
String Char[] |
||||
xml |
Xml |
無 |
* 如果您知道 sql_variant 的基礎型別,請使用特定具型別的存取子。
SQL Server 線上叢書參考
如需 SQL Server 資料型別的詳細資訊,請參閱您所使用之 SQL Server 版本的《SQL Server 線上叢書》版本。
SQL Server 2000 |
SQL Server 2005 |
SQL Server 2008 |
---|---|---|