IDataRecord 인터페이스

정의

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
파생

예제

다음 예제에서는 파생된 클래스의 인스턴스를 만듭니다 SqlConnection하십시오 SqlCommand, 및 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

설명

IDataReader 하 고 IDataRecord 인터페이스를 구현 하는 상속 클래스를 사용 하는 DataReader 클래스입니다.The IDataReader and IDataRecord interfaces enable an inheriting class to implement a DataReader class. 결과 집합의 하나 이상의 앞 으로만 이동 가능한 스트림을 읽는 방법을 제공 합니다.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 DecimalDecimal
DBTYPE_DATEDBTYPE_DATE DateTimeDateTime
DBTYPE_DBDATEDBTYPE_DBDATE DateTimeDateTime
DBTYPE_DBTIMEDBTYPE_DBTIME DateTimeDateTime
DBTYPE_DBTIMESTAMPDBTYPE_DBTIMESTAMP DateTimeDateTime
DBTYPE_DECIMALDBTYPE_DECIMAL DecimalDecimal
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 DecimalDecimal
DBTYPE_PROPVARIANTDBTYPE_PROPVARIANT objectobject
DBTYPE_R4DBTYPE_R4 SingleSingle
DBTYPE_R8DBTYPE_R8 DoubleDouble
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

현재 행의 열 수를 가져옵니다.Gets the number of columns in the current row.

Item[Int32]

지정된 인덱스에 있는 열을 가져옵니다.Gets the column located at the specified index.

Item[String]

지정된 이름을 가진 열을 가져옵니다.Gets the column with the specified name.

메서드

GetBoolean(Int32)

지정된 열의 값에 해당하는 Boolean 값을 가져옵니다.Gets the value of the specified column as a Boolean.

GetByte(Int32)

지정된 열의 부호 없는 8비트 정수 값을 가져옵니다.Gets the 8-bit unsigned integer value of the specified column.

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)

지정된 열의 값에 해당하는 문자 값을 가져옵니다.Gets the character value of the specified column.

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)

지정된 열 서수에 대해 IDataReader를 반환합니다.Returns an IDataReader for the specified column ordinal.

GetDataTypeName(Int32)

지정된 필드에 대한 데이터 형식 정보를 가져옵니다.Gets the data type information for the specified field.

GetDateTime(Int32)

지정된 필드의 날짜 및 시간 데이터 값을 가져옵니다.Gets the date and time data value of the specified field.

GetDecimal(Int32)

지정된 필드의 고정 위치 숫자 값을 가져옵니다.Gets the fixed-position numeric value of the specified field.

GetDouble(Int32)

지정된 필드의 배정밀도 부동 소수점 숫자를 가져옵니다.Gets the double-precision floating point number of the specified field.

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)

지정된 필드의 단정밀도 부동 소수점 숫자를 가져옵니다.Gets the single-precision floating point number of the specified field.

GetGuid(Int32)

지정된 필드의 GUID 값을 반환합니다.Returns the GUID value of the specified field.

GetInt16(Int32)

지정된 필드의 부호 있는 16비트 정수 값을 가져옵니다.Gets the 16-bit signed integer value of the specified field.

GetInt32(Int32)

지정된 필드의 부호 있는 32비트 정수 값을 가져옵니다.Gets the 32-bit signed integer value of the specified field.

GetInt64(Int32)

지정된 필드의 부호 있는 64비트 정수 값을 가져옵니다.Gets the 64-bit signed integer value of the specified field.

GetName(Int32)

찾을 필드의 이름을 가져옵니다.Gets the name for the field to find.

GetOrdinal(String)

명명된 필드의 인덱스를 반환합니다.Return the index of the named field.

GetString(Int32)

지정된 필드의 문자열 값을 가져옵니다.Gets the string value of the specified field.

GetValue(Int32)

지정된 필드의 값을 반환합니다.Return the value of the specified field.

GetValues(Object[])

현재 레코드의 열 값으로 개체의 배열을 채웁니다.Populates an array of objects with the column values of the current record.

IsDBNull(Int32)

지정된 필드가 null로 설정되었는지 여부를 반환합니다.Return whether the specified field is set to null.

적용 대상