IDataRecord インターフェイス
アセンブリ: System.Data (system.data.dll 内)


IDataReader インターフェイスと IDataRecord インターフェイスを使用することで、継承クラスで DataReader クラスを実装できます。これにより、結果セットの前方向のストリームを 1 つ以上読み取ることができます。DataReader クラスの詳細については、「DataReader によるデータの取得」を参照してください。.NET Framework データ プロバイダの実装方法の詳細については、「Implementing a .NET Framework Data Provider」を参照してください。
アプリケーションでは IDataRecord インターフェイスのインスタンスは直接作成されず、IDataRecord を継承するクラスのインスタンスが作成されます。これは通常、Command オブジェクトの ExecuteReader メソッドで DataReader を取得して実行します。
IDataRecord を継承するクラスは、すべての継承されたメンバを実装する必要があり、通常、プロバイダ固有の機能を追加する追加メンバを定義する必要があります。
DataReader を実装するプロバイダは、データを共通言語ランタイム (CLR) 型で公開する必要があります。CLR に含まれない一部の型に対して型の強制変換が定義されます。これらの値には、CLR 型に適合する代替型としてアクセスできる場合があります。その例として、提案される OLE DB データ型から CLR 型へのマップを次の表に示します。CLR 型列のかっこ内は代替型です。
OLE DB 型 | CLR 型 |
---|---|
DBTYPE_BOOL | Int16 |
DBTYPE_BSTR | |
DBTYPE_BYTES | byte[] |
DBTYPE_CY | |
DBTYPE_DATE | |
DBTYPE_DBDATE | |
DBTYPE_DBTIME | |
DBTYPE_DBTIMESTAMP | |
DBTYPE_DECIMAL | |
DBTYPE_EMPTY | |
DBTYPE_ERROR | ExternalException |
DBTYPE_FILETIME | |
DBTYPE_GUID | |
DBTYPE_HCHAPTER | サポートされていません |
DBTYPE_I1 | SByte |
DBTYPE_I2 | Int16 |
DBTYPE_I4 | Int32 |
DBTYPE_I8 | Int64 |
DBTYPE_IDISPATCH | |
DBTYPE_IUNKNOWN | |
DBTYPE_NULL | DBNull.Value |
DBTYPE_NUMERIC | |
DBTYPE_PROPVARIANT | |
DBTYPE_R4 | |
DBTYPE_R8 | |
DBTYPE_STR | |
DBTYPE_UDT | サポートされていません |
DBTYPE_UI1 | byte (Int16) |
DBTYPE_UI2 | UInt16 (Int32) |
DBTYPE_UI4 | UInt32 (Int64) |
DBTYPE_UI8 | UInt64 (Decimal) |
DBTYPE_VARIANT | |
DBTYPE_VARNUMERIC | サポートされていません |
DBTYPE_WSTR |

派生クラス SqlConnection、SqlCommand、および SqlDataReader のインスタンスを作成する例を次に示します。この例では、データを読み取り、コンソールに出力します。最後に、この例では SqlDataReader を閉じてから、SqlConnection を閉じます。
Private Sub ReadOrderData(ByVal connectionString As String) Dim queryString As String = _ "SELECT OrderID, CustomerID FROM dbo.Orders;" Using connection As New SqlConnection(connectionString) Dim command As New SqlCommand(queryString, connection) connection.Open() Dim reader As SqlDataReader = command.ExecuteReader() ' Call Read before accessing data. While reader.Read() Console.WriteLine(String.Format("{0}, {1}", _ reader(0), reader(1))) End While ' Call Close when done reading. reader.Close() End Using End Sub
private static void ReadOrderData(string connectionString) { string queryString = "SELECT OrderID, CustomerID FROM dbo.Orders;"; using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand command = new SqlCommand(queryString, connection); connection.Open(); SqlDataReader reader = command.ExecuteReader(); // Call Read before accessing data. while (reader.Read()) { Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1])); } // Call Close when done reading. reader.Close(); } }

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


IDataRecord プロパティ
IDataRecord メソッド

名前 | 説明 | |
---|---|---|
![]() | GetBoolean | 指定した列の値をブール値として取得します。 |
![]() | GetByte | 指定した列の 8 ビット符号なし整数値を取得します。 |
![]() | GetBytes | 指定したバッファ オフセットを開始位置として、指定した列オフセットからバッファに、バイトのストリームを配列として読み込みます。 |
![]() | GetChar | 指定した列の文字値を取得します。 |
![]() | GetChars | 指定したバッファ オフセットを開始位置として、指定した列オフセットからバッファに、文字のストリームを配列として読み込みます。 |
![]() | GetData | フィールドがさらにリモートの構造化データを指しているときに使用する IDataReader を取得します。 |
![]() | GetDataTypeName | 指定したフィールドのデータ型情報を取得します。 |
![]() | GetDateTime | 指定したフィールドの日時のデータ値を取得または設定します。 |
![]() | GetDecimal | 指定したフィールドの固定位置数値を取得します。 |
![]() | GetDouble | 指定したフィールドの倍精度浮動小数点数を取得します。 |
![]() | GetFieldType | GetValue から返される Object の型に対応する Type 情報を取得します。 |
![]() | GetFloat | 指定したフィールドの単精度浮動小数点数を取得します。 |
![]() | GetGuid | 指定したフィールドの GUID 値を返します。 |
![]() | GetInt16 | 指定したフィールドの 16 ビット符号付き整数値を取得します。 |
![]() | GetInt32 | 指定したフィールドの 32 ビット符号付き整数値を取得します。 |
![]() | GetInt64 | 指定したフィールドの 64 ビット符号付き整数値を取得します。 |
![]() | GetName | 検索するフィールドの名前を取得します。 |
![]() | GetOrdinal | 指定したフィールドのインデックスを返します。 |
![]() | GetString | 指定したフィールドの文字列値を取得します。 |
![]() | GetValue | 指定したフィールドの値を返します。 |
![]() | GetValues | 現在のレコードのコレクション内のすべての属性フィールドを取得します。 |
![]() | IsDBNull | 指定したフィールドが null に設定されているかどうかを示す値を返します。 |

IDataRecord メンバ
DataReader から各行内の列値にアクセスできるようにします。リレーショナル データベースにアクセスする .NET Framework データ プロバイダによって実装されます。
IDataRecord データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | GetBoolean | 指定した列の値をブール値として取得します。 |
![]() | GetByte | 指定した列の 8 ビット符号なし整数値を取得します。 |
![]() | GetBytes | 指定したバッファ オフセットを開始位置として、指定した列オフセットからバッファに、バイトのストリームを配列として読み込みます。 |
![]() | GetChar | 指定した列の文字値を取得します。 |
![]() | GetChars | 指定したバッファ オフセットを開始位置として、指定した列オフセットからバッファに、文字のストリームを配列として読み込みます。 |
![]() | GetData | フィールドがさらにリモートの構造化データを指しているときに使用する IDataReader を取得します。 |
![]() | GetDataTypeName | 指定したフィールドのデータ型情報を取得します。 |
![]() | GetDateTime | 指定したフィールドの日時のデータ値を取得または設定します。 |
![]() | GetDecimal | 指定したフィールドの固定位置数値を取得します。 |
![]() | GetDouble | 指定したフィールドの倍精度浮動小数点数を取得します。 |
![]() | GetFieldType | GetValue から返される Object の型に対応する Type 情報を取得します。 |
![]() | GetFloat | 指定したフィールドの単精度浮動小数点数を取得します。 |
![]() | GetGuid | 指定したフィールドの GUID 値を返します。 |
![]() | GetInt16 | 指定したフィールドの 16 ビット符号付き整数値を取得します。 |
![]() | GetInt32 | 指定したフィールドの 32 ビット符号付き整数値を取得します。 |
![]() | GetInt64 | 指定したフィールドの 64 ビット符号付き整数値を取得します。 |
![]() | GetName | 検索するフィールドの名前を取得します。 |
![]() | GetOrdinal | 指定したフィールドのインデックスを返します。 |
![]() | GetString | 指定したフィールドの文字列値を取得します。 |
![]() | GetValue | 指定したフィールドの値を返します。 |
![]() | GetValues | 現在のレコードのコレクション内のすべての属性フィールドを取得します。 |
![]() | IsDBNull | 指定したフィールドが null に設定されているかどうかを示す値を返します。 |

- IDataRecordのページへのリンク