다음을 통해 공유


IDataRecord 인터페이스

DataReader의 각 행에 있는 열 값에 대한 액세스를 제공하며, 관계형 데이터베이스에 액세스하는 .NET Framework 데이터 공급자에 의해 구현됩니다.

네임스페이스: System.Data
어셈블리: System.Data(system.data.dll)

구문

‘선언
Public Interface IDataRecord
‘사용 방법
Dim instance As IDataRecord
public interface IDataRecord
public interface class IDataRecord
public interface IDataRecord
public interface IDataRecord

설명

IDataReaderIDataRecord 인터페이스를 사용하면 상속하는 클래스가 DataReader 클래스를 구현하도록 할 수 있습니다. 이렇게 하면 결과 집합의 앞으로만 이동 가능한 스트림을 하나 이상 읽을 수 있습니다. DataReader 클래스에 대한 자세한 내용은 DataReader를 사용하여 데이터 검색를 참조하십시오. .NET Framework 데이터 공급자를 구현하는 방법에 대한 자세한 내용은 Implementing a .NET Framework Data Provider을 참조하십시오.

응용 프로그램은 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

예제

다음 예제에서는 파생 클래스인 SqlConnection, SqlCommandSqlDataReader의 인스턴스를 만듭니다. 이 예제에서는 데이터를 읽고 해당 데이터를 콘솔에 씁니다. 마지막으로 SqlDataReader, SqlConnection을 차례로 닫습니다.

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()
            Console.WriteLine(String.Format("{0}, {1}", _
                reader(0), reader(1)))
        End While

        ' Call Close when done reading.
        reader.Close()
    End Using
End Sub
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())
        {
            Console.WriteLine(String.Format("{0}, {1}",
                reader[0], reader[1]));
        }

        // Call Close when done reading.
        reader.Close();
    }
}

플랫폼

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

.NET Compact Framework

2.0, 1.0에서 지원

참고 항목

참조

IDataRecord 멤버
System.Data 네임스페이스