IDataRecord 인터페이스

정의

DataReader의 각 행에 있는 열 값에 액세스할 수 있도록 하고 관계형 데이터베이스에 액세스하는 .NET 데이터 공급자에 의해 구현됩니다.

public interface class IDataRecord
public interface IDataRecord
type IDataRecord = interface
Public Interface IDataRecord
파생

예제

다음 예제에서는 파생 클래스, , SqlCommandSqlDataReader의 인스턴스를 SqlConnection만듭니다. 이 예제에서는 데이터를 읽고 콘솔에 기록합니다. 마지막으로, 예제에서는 를 닫은 다음 을 닫습니다SqlDataReaderSqlConnection.

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

설명

IDataReaderIDataRecord 인터페이스를 사용하면 상속 클래스가 클래스를 구현할 수 있습니다DataReader. 이는 하나 이상의 정방향 전용 결과 집합 스트림을 읽는 방법을 제공합니다. 클래스에 대한 DataReader 자세한 내용은 DataReader를 사용하여 데이터 검색을 참조하세요.

애플리케이션의 인스턴스를 만들지 않습니다 합니다 IDataRecord 인터페이스를 직접 상속 된 클래스의 인스턴스를 만들고 있지만 IDataRecord합니다. 일반적으로 개체의 Command 메서드를 통해 ExecuteReaderDataReader 가져와서 이 작업을 수행합니다.

상속 된 클래스 IDataRecord 상속 된 모든 멤버를 구현 하 고 일반적으로 공급자 특정 기능을 추가 하기 위한 추가 멤버를 정의 해야 합니다.

를 구현하는 DataReader 공급자는 CLR(공용 언어 런타임) 형식으로 데이터를 노출해야 합니다. 형식 강제 변환은 CLR에 포함되지 않은 일부 형식에 대해 정의됩니다. 이러한 값은 CLR 형식을 준수하는 대체 형식으로 액세스할 수 있습니다. 예를 들어 다음 표에서는 대체 형식이 괄호 안에 있는 OLE DB 데이터 형식에서 CLR 형식으로의 제안된 매핑을 나열합니다.

OLE DB 형식 CLR 유형
DBTYPE_BOOL Int16
DBTYPE_BSTR 문자열
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 문자열
DBTYPE_UDT 지원되지 않음
DBTYPE_UI1 byte(Int16)
DBTYPE_UI2 UInt16(Int32)
DBTYPE_UI4 UInt32(Int64)
DBTYPE_UI8 UInt64(10진수)
DBTYPE_VARIANT object
DBTYPE_VARNUMERIC 지원되지 않음
DBTYPE_WSTR 문자열

속성

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로 설정되었는지 여부를 반환합니다.

적용 대상