次の方法で共有


IDataRecord インターフェイス

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

この型のすべてのメンバの一覧については、IDataRecord メンバ を参照してください。

Public Interface IDataRecord
[C#]
public interface IDataRecord
[C++]
public __gc __interface IDataRecord
[JScript]
public interface IDataRecord

IDataRecord を実装するクラス

クラス 説明
DbDataRecord IDataRecordICustomTypeDescriptor を実装し、 DbEnumerator のデータ連結をサポートします。
OdbcDataReader データ ソースからデータ行の前方向ストリームを読み取る方法を提供します。このクラスは継承できません。
OleDbDataReader データ ソースからデータ行の前方向ストリームを読み取る方法を提供します。このクラスは継承できません。
OracleDataReader データ ソースからデータ行の前方向ストリームを読み取る方法を提供します。このクラスは継承できません。
SqlCeDataReader データ ソースからデータ行の前方向ストリームを読み取る方法を提供します。このクラスは継承できません。
SqlDataReader SQL Server データベースから行の前方向ストリームを読み取る方法を提供します。このクラスは継承できません。

解説

IDataReader インターフェイスと IDataRecord インターフェイスによって、継承クラスは結果セットの 1 つ以上の前方向ストリームを読み込む手段を提供する DataReader クラスを実装できます。DataReader クラスの詳細については、「 DataReader によるデータの取得 」を参照してください。.NET Framework データ プロバイダの実装の詳細については、「 .NET Framework データ プロバイダの実装 」を参照してください。

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

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

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

OLE DB 型 CLR 型
DBTYPE_BOOL Int16
DBTYPE_BSTR string
DBTYPE_BYTES byte[]
DBTYPE_CY Decimal
DBTYPE_DATE DateTime
DBTYPE_DBDATE DateTime
DBTYPE_DBTIME DateTime
DBTYPE_DBTIMESTAMP DateTime
DBTYPE_DECIMAL 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 Object
DBTYPE_IUNKNOWN Object
DBTYPE_NULL DBNull.Value
DBTYPE_NUMERIC Decimal
DBTYPE_PROPVARIANT Object
DBTYPE_R4 Single
DBTYPE_R8 Double
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

使用例

[Visual Basic, C#, C++] 派生クラス SqlConnectionSqlCommand 、および SqlDataReader のインスタンスを作成する例を次に示します。この例では、データを読み取り、コンソールに出力します。最後に、この例では SqlDataReader を閉じてから、 SqlConnection を閉じます。

 
Public Sub ReadMyData(myConnString As String)
    Dim mySelectQuery As String = "SELECT OrderID, CustomerID FROM Orders"
    Dim myConnection As New SqlConnection(myConnString)
    Dim myCommand As New SqlCommand(mySelectQuery, myConnection)
    myConnection.Open()
    Dim myReader As SqlDataReader
    myReader = myCommand.ExecuteReader()
    ' Always call Read before accessing data.
    While myReader.Read()
        Console.WriteLine((myReader.GetInt32(0) & ", " & myReader.GetString(1)))
    End While
    ' always call Close when done reading.
    myReader.Close()
    ' Close the connection when done with it.
    myConnection.Close()
End Sub 'ReadMyData

[C#] 
public void ReadMyData(string myConnString) {
    string mySelectQuery = "SELECT OrderID, CustomerID FROM Orders";
    SqlConnection myConnection = new SqlConnection(myConnString);
    SqlCommand myCommand = new SqlCommand(mySelectQuery,myConnection);
    myConnection.Open();
    SqlDataReader myReader;
    myReader = myCommand.ExecuteReader();
    // Always call Read before accessing data.
    while (myReader.Read()) {
       Console.WriteLine(myReader.GetInt32(0) + ", " + myReader.GetString(1));
    }
    // always call Close when done reading.
    myReader.Close();
    // Close the connection when done with it.
    myConnection.Close();
 }

[C++] 
public:
void ReadMyData(String* myConnString) {
    String* mySelectQuery = S"SELECT OrderID, CustomerID FROM Orders";
    SqlConnection* myConnection = new SqlConnection(myConnString);
    SqlCommand* myCommand = new SqlCommand(mySelectQuery,myConnection);
    myConnection->Open();
    SqlDataReader* myReader;
    myReader = myCommand->ExecuteReader();
    // Always call Read before accessing data.
    while (myReader->Read()) {
       Console::WriteLine(S"{0}, {1}", __box(myReader->GetInt32(0)), myReader->GetString(1));
    }
    // always call Close when done reading.
    myReader->Close();
    // Close the connection when done with it.
    myConnection->Close();
 }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Data

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: System.Data (System.Data.dll 内)

参照

IDataRecord メンバ | System.Data 名前空間