IDataRecord IDataRecord IDataRecord IDataRecord Interface

定義

DataReader について各行内の列の値へのアクセスを提供し、リレーショナル データベースにアクセスする .NET Framework データ プロバイダーによって実装されています。Provides access to the column values within each row for a DataReader, and is implemented by .NET Framework data providers that access relational databases.

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

次の例は、派生クラスのインスタンスを作成SqlConnectionSqlCommand、およびSqlDataReaderします。The following example creates instances of the derived classes, SqlConnection, SqlCommand, and SqlDataReader. 例では、コンソールに書き出し、データを読み取ります。The example reads through the data, writing it out to the console. 最後に、例、SqlDataReaderをクリックし、SqlConnectionします。Finally, the example closes the SqlDataReader, and then the 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 record)
    {
        Console.WriteLine(String.Format("{0}, {1}", record[0], record[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

注釈

IDataReaderIDataRecordインターフェイスが実装するために、継承したクラスを有効にする、DataReaderクラス。The IDataReader and IDataRecord interfaces enable an inheriting class to implement a DataReader class. これは、結果セットの 1 つまたは複数順方向専用ストリームを読み取る手段を提供します。This provides a way of reading one or more forward-only streams of result sets. 詳細についてはDataReaderクラスを参照してくださいDataReader によるデータの取得します。For more information about DataReader classes, see Retrieving Data Using a DataReader.

アプリケーションがのインスタンスを作成していない、IDataRecordインターフェイスを直接が継承するクラスのインスタンスを作成しますIDataRecordします。An application does not create an instance of the IDataRecord interface directly, but creates an instance of a class that inherits IDataRecord. 通常、これを行う取得することによって、DataReaderを通じて、ExecuteReaderのメソッド、Commandオブジェクト。Typically, you do this by obtaining a DataReader through the ExecuteReader method of the Command object.

クラスを継承するIDataRecord継承されたすべてのメンバーを実装し、通常はプロバイダー固有の機能を追加するための追加メンバーを定義する必要があります。Classes that inherit IDataRecord must implement all inherited members, and typically define additional members to add provider-specific functionality.

プロバイダーを実装する、DataReader共通言語ランタイム (CLR) 型でデータを公開する必要があります。Providers implementing a DataReader are required to expose data in common language runtime (CLR) types. 強制型変換は、CLR に含まれていない一部の種類に対して定義されます。Type coercion is defined for some types not included in the CLR. これらの値は、CLR 型に準拠する代替の型としてアクセスできます。These values may be accessed as alternative types that comply with CLR types. 例としては、次の表は、OLE DB データ型から CLR 型をかっこで囲まれた別の型への推奨されるマッピングを示します。As an example, the following table lists suggested mappings from OLE DB data types to CLR types, with alternative types in parentheses.

OLE DB 型OLE DB type CLR 型CLR type
DBTYPE_BOOLDBTYPE_BOOL Int16Int16
DBTYPE_BSTRDBTYPE_BSTR stringstring
DBTYPE_BYTESDBTYPE_BYTES byte[]byte[]
DBTYPE_CYDBTYPE_CY Decimal (10 進数型)Decimal
DBTYPE_DATEDBTYPE_DATE DateTimeDateTime
DBTYPE_DBDATEDBTYPE_DBDATE DateTimeDateTime
DBTYPE_DBTIMEDBTYPE_DBTIME DateTimeDateTime
DBTYPE_DBTIMESTAMPDBTYPE_DBTIMESTAMP DateTimeDateTime
DBTYPE_DECIMALDBTYPE_DECIMAL Decimal (10 進数型)Decimal
DBTYPE_EMPTYDBTYPE_EMPTY nullnull
DBTYPE_ERRORDBTYPE_ERROR ExternalExceptionExternalException
DBTYPE_FILETIMEDBTYPE_FILETIME DateTimeDateTime
DBTYPE_GUIDDBTYPE_GUID GUIDGuid
DBTYPE_HCHAPTERDBTYPE_HCHAPTER サポート外not supported
DBTYPE_I1DBTYPE_I1 SByteSByte
DBTYPE_I2DBTYPE_I2 Int16Int16
DBTYPE_I4DBTYPE_I4 Int32Int32
DBTYPE_I8DBTYPE_I8 Int64Int64
DBTYPE_IDISPATCHDBTYPE_IDISPATCH objectobject
DBTYPE_IUNKNOWNDBTYPE_IUNKNOWN objectobject
DBTYPE_NULLDBTYPE_NULL DBNull.ValueDBNull.Value
DBTYPE_NUMERICDBTYPE_NUMERIC Decimal (10 進数型)Decimal
DBTYPE_PROPVARIANTDBTYPE_PROPVARIANT objectobject
DBTYPE_R4DBTYPE_R4 SingleSingle
DBTYPE_R8DBTYPE_R8 倍精度浮動小数点型Double
DBTYPE_STRDBTYPE_STR stringstring
DBTYPE_UDTDBTYPE_UDT サポート外not supported
DBTYPE_UI1DBTYPE_UI1 バイト (Int16)byte (Int16)
DBTYPE_UI2DBTYPE_UI2 UInt16 (Int32)UInt16 (Int32)
DBTYPE_UI4DBTYPE_UI4 Uint32 型 (Int64)UInt32 (Int64)
DBTYPE_UI8DBTYPE_UI8 UInt64 (10 進数)UInt64 (Decimal)
DBTYPE_VARIANTDBTYPE_VARIANT objectobject
DBTYPE_VARNUMERICDBTYPE_VARNUMERIC サポート外not supported
DBTYPE_WSTRDBTYPE_WSTR stringstring

プロパティ

FieldCount FieldCount FieldCount FieldCount

現在の行の列の数を取得します。Gets the number of columns in the current row.

Item[Int32] Item[Int32] Item[Int32] Item[Int32]

指定したインデックスにある列を取得します。Gets the column located at the specified index.

Item[String] Item[String] Item[String] Item[String]

指定された名前を持つ列を取得します。Gets the column with the specified name.

メソッド

GetBoolean(Int32) GetBoolean(Int32) GetBoolean(Int32) GetBoolean(Int32)

指定された列の値を Boolean として取得します。Gets the value of the specified column as a Boolean.

GetByte(Int32) GetByte(Int32) GetByte(Int32) GetByte(Int32)

指定された列の 8 ビット符号なし整数値を取得します。Gets the 8-bit unsigned integer value of the specified column.

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

指定した列オフセットから、指定したバッファー オフセットから始まるバイトのストリームを、配列としてバッファーに読み取ります。Reads a stream of bytes from the specified column offset into the buffer as an array, starting at the given buffer offset.

GetChar(Int32) GetChar(Int32) GetChar(Int32) GetChar(Int32)

指定された列の文字値を取得します。Gets the character value of the specified column.

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

指定した列オフセットから、指定したバッファー オフセットから始まる文字列ストリームを、配列としてバッファーに読み取ります。Reads a stream of characters from the specified column offset into the buffer as an array, starting at the given buffer offset.

GetData(Int32) GetData(Int32) GetData(Int32) GetData(Int32)

指定された列序数の IDataReader を返します。Returns an IDataReader for the specified column ordinal.

GetDataTypeName(Int32) GetDataTypeName(Int32) GetDataTypeName(Int32) GetDataTypeName(Int32)

指定されたフィールドのデータ型情報を取得します。Gets the data type information for the specified field.

GetDateTime(Int32) GetDateTime(Int32) GetDateTime(Int32) GetDateTime(Int32)

指定されたフィールドの日付と時刻のデータ値を取得します。Gets the date and time data value of the specified field.

GetDecimal(Int32) GetDecimal(Int32) GetDecimal(Int32) GetDecimal(Int32)

指定されたフィールドの固定位置の数値を取得します。Gets the fixed-position numeric value of the specified field.

GetDouble(Int32) GetDouble(Int32) GetDouble(Int32) GetDouble(Int32)

指定されたフィールドの倍精度浮動小数点値を取得します。Gets the double-precision floating point number of the specified field.

GetFieldType(Int32) GetFieldType(Int32) GetFieldType(Int32) GetFieldType(Int32)

GetValue(Int32) から返される Object の型に対応する Type 情報を取得します。Gets the Type information corresponding to the type of Object that would be returned from GetValue(Int32).

GetFloat(Int32) GetFloat(Int32) GetFloat(Int32) GetFloat(Int32)

指定されたフィールドの単精度浮動小数点値を取得します。Gets the single-precision floating point number of the specified field.

GetGuid(Int32) GetGuid(Int32) GetGuid(Int32) GetGuid(Int32)

指定したフィールドの GUID 値を返します。Returns the GUID value of the specified field.

GetInt16(Int32) GetInt16(Int32) GetInt16(Int32) GetInt16(Int32)

指定されたフィールドの 16 ビット符号付き整数値を取得します。Gets the 16-bit signed integer value of the specified field.

GetInt32(Int32) GetInt32(Int32) GetInt32(Int32) GetInt32(Int32)

指定されたフィールドの 32 ビット符号付き整数値を取得します。Gets the 32-bit signed integer value of the specified field.

GetInt64(Int32) GetInt64(Int32) GetInt64(Int32) GetInt64(Int32)

指定されたフィールドの 64 ビット符号付き整数値を取得します。Gets the 64-bit signed integer value of the specified field.

GetName(Int32) GetName(Int32) GetName(Int32) GetName(Int32)

検索するフィールドの名前を取得します。Gets the name for the field to find.

GetOrdinal(String) GetOrdinal(String) GetOrdinal(String) GetOrdinal(String)

名前付きフィールドのインデックスを返します。Return the index of the named field.

GetString(Int32) GetString(Int32) GetString(Int32) GetString(Int32)

指定したフィールドの文字列値を取得します。Gets the string value of the specified field.

GetValue(Int32) GetValue(Int32) GetValue(Int32) GetValue(Int32)

指定したフィールドの値を返します。Return the value of the specified field.

GetValues(Object[]) GetValues(Object[]) GetValues(Object[]) GetValues(Object[])

現在のレコードの列の値を持つオブジェクトの配列を設定します。Populates an array of objects with the column values of the current record.

IsDBNull(Int32) IsDBNull(Int32) IsDBNull(Int32) IsDBNull(Int32)

指定されたフィールドが null に設定されているかどうかを返します。Return whether the specified field is set to null.

適用対象