IDataRecord インターフェイス

定義

DataReaderの各行内の列値へのアクセスを提供し、リレーショナル データベースにアクセスする .NET データ プロバイダーによって実装されます。

public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
派生

次の例では、派生クラス、 SqlConnectionSqlCommand、および SqlDataReaderのインスタンスを作成します。 この例では、データを読み取り、コンソールに書き出します。 最後に、 SqlDataReaderを閉じ、 SqlConnectionを閉じます。

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())
        {
            ReadSingleRow((IDataRecord)reader);
        }

        // Call Close when done reading.
        reader.Close();
    }
}

private static void ReadSingleRow(IDataRecord dataRecord)
{
    Console.WriteLine(String.Format("{0}, {1}", dataRecord[0], dataRecord[1]));
}
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()
            ReadSingleRow(CType(reader, IDataRecord))
        End While

        ' Call Close when done reading.
        reader.Close()
    End Using
End Sub

Private Sub ReadSingleRow(ByVal record As IDataRecord)
   Console.WriteLine(String.Format("{0}, {1}", record(0), record(1)))
End Sub

注釈

IDataReaderインターフェイスとIDataRecord インターフェイスを使用すると、継承クラスでDataReader クラスを実装できます。 これにより、結果セットの 1 つ以上の前方専用ストリームを読み取る方法が提供されます。 DataReader クラスの詳細については、「DataReader を使用したデータの取得」を参照してください。

アプリケーションは、 IDataRecord インターフェイスのインスタンスを直接作成するのではなく、 IDataRecordを継承するクラスのインスタンスを作成します。 通常、これを行うには、Command オブジェクトのExecuteReaderメソッドを使用してDataReaderを取得します。

IDataRecordを継承するクラスは、継承されたすべてのメンバーを実装し、通常はプロバイダー固有の機能を追加するために追加のメンバーを定義する必要があります。

DataReaderを実装するプロバイダーは、共通言語ランタイム (CLR) 型でデータを公開する必要があります。 型強制型変換は、CLR に含まれていない一部の型に対して定義されます。 これらの値は、CLR 型に準拠する代替型としてアクセスできます。 例として、次の表に、OLE DB データ型から CLR 型への推奨されるマッピングと、代替型をかっこで囲んだ一覧を示します。

OLE DB 型 CLR 型
DBTYPE_BOOL Int16
DBTYPE_BSTR 文字列
DBTYPE_BYTES byte[]
DBTYPE_CY 小数
DBTYPE_DATE DateTime
DBTYPE_DBDATE DateTime
DBTYPE_DBTIME DateTime
DBTYPE_DBTIMESTAMP DateTime
DBTYPE_DECIMAL 小数
DBTYPE_EMPTY null 値
DBTYPE_ERROR(データベースタイプのエラー) ExternalException
DBTYPE_FILETIME DateTime
DBTYPE_GUID 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 Double
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 文字列

プロパティ

名前 説明
FieldCount

現在の行の列数を取得します。

Item[Int32]

指定したインデックス位置にある列を取得します。

Item[String]

指定した名前の列を取得します。

メソッド

名前 説明
GetBoolean(Int32)

指定した列の値をブール値として取得します。

GetByte(Int32)

指定した列の 8 ビット符号なし整数値を取得します。

GetBytes(Int32, Int64, Byte[], Int32, Int32)

指定されたバッファー オフセットから始まる、指定した列オフセットからバッファーへのバイト ストリームを配列として読み取ります。

GetChar(Int32)

指定した列の文字値を取得します。

GetChars(Int32, Int64, Char[], Int32, Int32)

指定されたバッファー オフセットから始まる、指定した列オフセットからバッファーに文字のストリームを配列として読み取ります。

GetData(Int32)

指定した列序数の IDataReader を返します。

GetDataTypeName(Int32)

指定したフィールドのデータ型情報を取得します。

GetDateTime(Int32)

指定したフィールドの日付と時刻のデータ値を取得します。

GetDecimal(Int32)

指定したフィールドの固定位置の数値を取得します。

GetDouble(Int32)

指定したフィールドの倍精度浮動小数点数を取得します。

GetFieldType(Int32)

GetValue(Int32)から返されるObjectの種類に対応するType情報を取得します。

GetFloat(Int32)

指定したフィールドの単精度浮動小数点数を取得します。

GetGuid(Int32)

指定したフィールドの GUID 値を返します。

GetInt16(Int32)

指定したフィールドの 16 ビット符号付き整数値を取得します。

GetInt32(Int32)

指定したフィールドの 32 ビット符号付き整数値を取得します。

GetInt64(Int32)

指定したフィールドの 64 ビット符号付き整数値を取得します。

GetName(Int32)

検索するフィールドの名前を取得します。

GetOrdinal(String)

名前付きフィールドのインデックスを返します。

GetString(Int32)

指定したフィールドの文字列値を取得します。

GetValue(Int32)

指定したフィールドの値を返します。

GetValues(Object[])

オブジェクトの配列に現在のレコードの列値を設定します。

IsDBNull(Int32)

指定したフィールドが null に設定されているかどうかを返します。

適用対象