SQL Server データ型のマッピング (ADO.NET)
SQL Server と .NET Framework は異なる型システムを使用しています。 たとえば、.NET Framework の Decimal 構造体の最大小数点以下桁数は 28 ですが、SQL Server の decimal データ型と numeric データ型の最大小数点以下桁数は 38 です。 データを読み書きするときにデータの整合性を保つために、SqlDataReader では、.NET Framework の型を返すアクセサー メソッドと共に、System.Data.SqlTypes のオブジェクトを返す SQL Server 固有の型指定されたアクセサー メソッドを公開しています。 SQL Server の型と .NET Framework の型は、両方とも DbType および SqlDbType クラスの列挙によって表されます。これらは SqlParameter データ型を指定するときに使用できます。
推論される .NET Framework 型、DbType 列挙と SqlDbType 列挙、および SqlDataReader のアクセサー メソッドを次の表に示します。
SQL Server データベース エンジンの型 |
.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 |
---|---|---|
参照
概念
パラメーターおよびパラメーターのデータ型の構成 (ADO.NET)