首页 > 代码库 > SQL Server 数据类型映射 (ADO.NET)
SQL Server 数据类型映射 (ADO.NET)
SQL Server 数据类型映射 (ADO.NET)
更新:November 2007
SQL Server 和 .NET Framework 基于不同的类型系统。例如,.NET Framework Decimal 结构的最大小数位数为 28,而 SQL Server 的 decimal 和 numeric 数据类型的最大小数位数为 38。为了在读取和写入数据时维护数据的完整性,SqlDataReader 将公开用于返回 System.Data.SqlTypes 的对象的 SQL Server 特定的类型化访问器方法以及用于返回 .NET Framework 类型的访问器方法。SQL Server 类型和 .NET Framework 类型也可通过 DbType 和 SqlDbType 类中的枚举表示,当您指定 SqlParameter 数据类型时可以使用这些枚举。
下表显示推断的 .NET Framework 类型、DbType 和 SqlDbType 枚举以及 SqlDataReader 的访问器方法。
SQL Server 数据库引擎类型 | .NET Framework 类型 | SqlDbType 枚举 | SqlDataReader SqlTypes 类型化访问器 | DbType 枚举 | SqlDataReader DbType 类型化访问器 |
---|---|---|---|---|---|
bigint | Int64 | BigInt | GetSqlInt64 | Int64 | GetInt64 |
binary | Byte[] | VarBinary | GetSqlBinary | Binary | GetBytes |
bit | Boolean | Bit | GetSqlBoolean | Boolean | GetBoolean |
char | String Char[] | Char | GetSqlString | AnsiStringFixedLength, String | GetString GetChars |
date (仅适用 SQL Server 2008) | DateTime | Date | GetSqlDateTime | Date | GetDateTime |
datetime | DateTime | DateTime | GetSqlDateTime | DateTime | GetDateTime |
datetime2 (仅适用 SQL Server 2008) | DateTime2 | DateTime2 | GetSqlDateTime | DateTime2 | GetDateTime |
datetimeoffset (仅适用 SQL Server 2008) | DateTimeOffset | DateTimeOffset | none | DateTimeOffset | GetDateTimeOffset |
decimal | Decimal | Decimal | GetSqlDecimal | Decimal | GetDecimal |
FILESTREAM 属性 (varbinary(max) | Byte[] | VarBinary | GetSqlBytes | Binary | GetBytes |
float | Double | Float | GetSqlDouble | Double | GetDouble |
image | Byte[] | Binary | GetSqlBinary | Binary | GetBytes |
int | Int32 | Int | GetSqlInt32 | Int32 | GetInt32 |
money | Decimal | Money | GetSqlMoney | Decimal | GetDecimal |
nchar | String Char[] | NChar | GetSqlString | StringFixedLength | GetString GetChars |
ntext | String Char[] | NText | GetSqlString | String | GetString GetChars |
numeric | Decimal | Decimal | GetSqlDecimal | Decimal | GetDecimal |
nvarchar | String Char[] | NVarChar | GetSqlString | String | GetString GetChars |
real | Single | Real | GetSqlSingle | Single | GetFloat |
rowversion | Byte[] | Timestamp | GetSqlBinary | Binary | GetBytes |
smalldatetime | DateTime | DateTime | GetSqlDateTime | DateTime | GetDateTime |
smallint | Int16 | SmallInt | GetSqlInt16 | Int16 | GetInt16 |
smallmoney | Decimal | SmallMoney | GetSqlDecimal | Decimal | GetDecimal |
sql_variant | Object* | Variant | GetSqlValue * | Object | GetValue * |
text | String Char[] | Text | GetSqlString | String | GetString GetChars |
time (仅适用 SQL Server 2008) | TimeSpan | Time | none | Time | GetDateTime |
timestamp | Byte[] | Timestamp | GetSqlBinary | Binary | GetBytes |
tinyint | Byte | TinyInt | GetSqlByte | Byte | GetByte |
uniqueidentifier | Guid | UniqueIdentifier | GetSqlGuid | Guid | GetGuid |
varbinary | Byte[] | VarBinary | GetSqlBinary | Binary | GetBytes |
varchar | String Char[] | VarChar | GetSqlString | AnsiString, String | GetString GetChars |
xml | Xml | Xml | GetSqlXml | Xml | none |
* 如果已知 sql_variant 的基础类型,则使用特定的类型化访问器。
有关 SQL Server 数据类型的更多信息,请参见与您所使用的 SQL Server 版本对应的 SQL Server 联机丛书。
SQL Server 2000 | SQL Server 2005 | SQL Server 2008 |
---|---|---|
数据类型 | 数据类型(数据库引擎) | 数据类型(数据库引擎) |
概念
其他资源
SQL Server 数据类型映射 (ADO.NET)