IDataRecord インターフェイス

定義

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

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

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

using System;
using System.Data;
using System.Data.SqlClient;

class Program
{
    static void Main()
    {
        string str = "Data Source=(local);Initial Catalog=Northwind;"
            + "Integrated Security=SSPI";
        ReadOrderData(str);
    }

    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]));
    }
}
Option Explicit On
Option Strict On

Imports System.Data
Imports System.Data.SqlClient

Module Module1

    Sub Main()
        Dim str As String = "Data Source=(local);Initial Catalog=Northwind;" _
       & "Integrated Security=SSPI;"
        ReadOrderData(str)
    End Sub

    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

End Module

注釈

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

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

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

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

OLE DB 型 CLR 型
DBTYPE_BOOL Int16
DBTYPE_BSTR string
DBTYPE_BYTES byte[]
DBTYPE_CY Decimal (10 進数型)
DBTYPE_DATE DateTime
DBTYPE_DBDATE DateTime
DBTYPE_DBTIME DateTime
DBTYPE_DBTIMESTAMP DateTime
DBTYPE_DECIMAL Decimal (10 進数型)
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 object
DBTYPE_IUNKNOWN object
DBTYPE_NULL DBNull.Value
DBTYPE_NUMERIC Decimal (10 進数型)
DBTYPE_PROPVARIANT object
DBTYPE_R4 Single
DBTYPE_R8 倍精度浮動小数点型
DBTYPE_STR string
DBTYPE_UDT サポート外
DBTYPE_UI1 byte (Int16)
DBTYPE_UI2 UInt16 (Int32)
DBTYPE_UI4 UInt32 (Int64)
DBTYPE_UI8 UInt64 (Decimal)
DBTYPE_VARIANT object
DBTYPE_VARNUMERIC サポート外
DBTYPE_WSTR string

プロパティ

FieldCount

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

Item[Int32]

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

Item[String]

指定された名前を持つ列を取得します。

メソッド

GetBoolean(Int32)

指定された列の値を Boolean として取得します。

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 に設定されているかどうかを返します。

適用対象