次の方法で共有


SQL Server データ型のマッピング (ADO.NET)

更新 : November 2007

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

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

なし

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

なし

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

なし

* sql_variant の基になる型がわかっている場合は、特定の型指定されたアクセサを使用してください。

SQL Server オンライン ブックの参照

SQL Server のデータ型については、使用する SQL Server のバージョンに対応したバージョンの SQL Server オンライン ブックを参照してください。

SQL Server 2000

SQL Server 2005

SQL Server 2008

データ型

データ型 (データベース エンジン)

データ型 (データベース エンジン)

参照

概念

パラメータおよびパラメータのデータ型の構成 (ADO.NET)

その他の技術情報

SQL Server データ型と ADO.NET

SQL Server のバイナリ データと大きな値のデータ (ADO.NET)

ADO.NET でのデータ型のマッピング