Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В SQL Server и .NET Framework используются различные системы типов. Например, максимальная разрядность структуры .NET Framework Decimal составляет 28, в то время как максимальная разрядность десятичных и числовых типов данных SQL Server - 38. Чтобы обеспечить целостность данных при чтении и записи, объект SqlDataReader предоставляет характерные для SQL Server типизированные методы доступа, возвращающие объекты System.Data.SqlTypes, а также методы доступа, возвращающие типы .NET Framework. Типы данных SQL Server и .NET Framework также представлены перечислениями в классах DbType и SqlDbType, которые можно использовать при указании типов данных SqlParameter.
В следующей таблице приведены выводимый тип .NET Framework DbType и перечисления SqlDbType, а также методы доступа для SqlDataReader.
| Тип ядра СУБД SQL Server | Тип .NET Framework | Перечисление SqlDbType | Типизированный метод доступа SqlDataReader SqlTypes | Перечисление DbType | Типизированный метод доступа SqlDataReader DbType |
|---|---|---|---|---|---|
| Бигинт | Int64 | BigInt | GetSqlInt64 | Int64 | GetInt64 |
| бинарный | Байт[] | VarBinary | GetSqlBinary | Binary | GetBytes |
| кусочек | Логический | Bit | GetSqlBoolean | Boolean | GetBoolean |
| уголь | Строка Char[] |
Char | GetSqlString |
AnsiStringFixedLength, String |
GetString GetChars |
| дата 1 (SQL Server 2008 и более поздние версии) |
Дата/время | Date 1 | GetSqlDateTime | Date 1 | GetDateTime |
| дата/время | Дата/время | DateTime | GetSqlDateTime | DateTime | GetDateTime |
| дата-время2 (SQL Server 2008 и более поздние версии) |
Дата/время | DateTime2 | нет | DateTime2 | GetDateTime |
| смещение даты и времени (SQL Server 2008 и более поздние версии) |
DateTimeOffset (смещение даты и времени) | DateTimeOffset | ничего | DateTimeOffset | GetDateTimeOffset |
| десятичное | Десятичное число | Decimal | GetSqlDecimal | Decimal | GetDecimal |
| Атрибут FILESTREAM (varbinary(max)) | Байт[] | VarBinary | GetSqlBytes | Binary | GetBytes |
| с плавающей запятой | Двойной | Float | GetSqlDouble | Double | GetDouble |
| Изображение | Байт[] | Binary | GetSqlBinary | Binary | GetBytes |
| INT | Int32 | Int | GetSqlInt32 | Int32 | GetInt32 |
| деньги | Десятичное число | Money | GetSqlMoney | Decimal | GetDecimal |
| nchar | Строка Char[] |
NChar | GetSqlString | StringFixedLength | GetString GetChars |
| ntext | Строка Char[] |
NText | GetSqlString | String | GetString GetChars |
| числовой | Десятичное число | Decimal | GetSqlDecimal | Decimal | GetDecimal |
| nvarchar | Строка Char[] |
NVarChar | GetSqlString | String | GetString GetChars |
| настоящий | Одна | Real | GetSqlSingle | Single | GetFloat |
| строковая версия | Байт[] | Timestamp | GetSqlBinary | Binary | GetBytes |
| smalldatetime | Дата/время | DateTime | GetSqlDateTime | DateTime | GetDateTime |
| smallint | Int16 | SmallInt | GetSqlInt16 | Int16 | GetInt16 |
| smallmoney | Десятичное число | SmallMoney | GetSqlMoney | Decimal | GetDecimal |
| SQL-вариант | Объект 2 | Variant | GetSqlValue 2 | Object | GetValue 2 |
| текст | Строка Char[] |
Text | GetSqlString | String | GetString GetChars |
| Время (SQL Server 2008 и более поздние версии) |
Интервал времени | Time | ничего | Time | GetTimeSpan |
| TIMESTAMP | Байт[] | Timestamp | GetSqlBinary | Binary | GetBytes |
| tinyint | Байт | TinyInt | GetSqlByte | Byte | GetByte |
| уникальный идентификатор | GUID | UniqueIdentifier | GetSqlGuid | Guid | GetGuid |
| varbinary | Байт[] | VarBinary | GetSqlBinary | Binary | GetBytes |
| Варчар | Строка Чар[] |
VarChar | GetSqlString | AnsiString, String | GetString GetChars |
| XML | Xml | Xml | GetSqlXml | Xml | ничего |
1 Вы не можете задать для свойства DbType параметра SqlParameter значение SqlDbType.Date.
2 Если известен базовый тип sql_variant, используйте конкретный типизированный метод доступа.
Документация SQL Server
Дополнительные сведения о типах данных SQL Server см. в статье Типы данных (Transact-SQL).