首页 > 代码库 > SQL Server 与 ADO.NET 数据类型映射
SQL Server 与 ADO.NET 数据类型映射
SQL Server 数据类型映射
SQL Server 和 .NET Framework 基于不同的类型系统。 Decimal structure has a maximum scale of 28, whereas the SQL Server decimal and numeric data types have a maximum scale of 38.‘ data-guid="5192ddd1b197626d65c842bb2463470b">例如,.NET Framework Decimal 结构的最大小数位数为 28,而 SQL Server 的 decimal 和 numeric 数据类型的最大小数位数为 38。 SqlDataReader exposes SQL Server–specific typed accessor methods that return objects of System.Data.SqlTypes as well as accessor methods that return .NET Framework types.‘ data-guid="ad3b25e76f1f18f95f52acac05b6f59a">为了在读取和写入数据时维护数据的完整性,SqlDataReader 将公开用于返回 System.Data.SqlTypes 的对象的 SQL Server 特定的类型化访问器方法以及用于返回 .NET Framework 类型的访问器方法。 DbType and SqlDbType classes, which you can use when specifying SqlParameter data types.‘ data-guid="9fe7e247392ffde56fb9da07e16b17bf">SQL Server 类型和 .NET Framework 类型也可通过 DbType 和 SqlDbType 类中的枚举表示,当您指定 SqlParameter 数据类型时可以使用这些枚举。
DbType and SqlDbType enumerations, and the accessor methods for the SqlDataReader.‘ data-guid="30a3f44e5345b5ac5fe51e6bf19bc4bd">下表显示推断的 .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,‘ data-guid="69315f161846ce575921f7e8bafc78c4">AnsiStringFixedLength, String | GetString GetChars |
date (SQL Server 2008 及更高版本) | DateTime | Date | GetSqlDateTime | Date | GetDateTime |
datetime | DateTime | DateTime | GetSqlDateTime | DateTime | GetDateTime |
datetime2 (SQL Server 2008 及更高版本) | DateTime | DateTime2 | 无 | DateTime2 | GetDateTime |
datetimeoffset (SQL Server 2008 及更高版本) | DateTimeOffset | DateTimeOffset | 无 | 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 | GetSqlMoney | Decimal | GetDecimal |
sql_variant | Object* | Variant | GetSqlValue *‘ data-guid="151dbb46642460ff6a636a2a5105694d">GetSqlValue * | Object | GetValue *‘ data-guid="75d783b4d465860239fb4339f2fda9a7">GetValue * |
文本 | String Char[] | Text | GetSqlString | String | GetString GetChars |
time (SQL Server 2008 及更高版本) | TimeSpan | Time | 无 | 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‘ data-guid="173a01b9808fbf5be1d53455dae125be">AnsiString ,String | GetString GetChars |
xml | Xml | Xml | GetSqlXml | Xml | 无 |
sql_variant.‘ data-guid="8b0a179011d8c715f0adedd79ff5e9c5">* 如果已知 sql_variant 的基础类型,则使用特定的类型化访问器。