다음을 통해 공유


IDataReader 인터페이스

정의

데이터 소스에서 명령을 실행하여 얻은 결과 집합의 하나 이상의 앞으로만 이동 가능한 스트림을 읽는 방법을 제공하며 관계형 데이터베이스에 액세스하는 .NET 데이터 공급자에 의해 구현됩니다.

public interface class IDataReader : IDisposable, System::Data::IDataRecord
public interface IDataReader : IDisposable, System.Data.IDataRecord
type IDataReader = interface
    interface IDataRecord
    interface IDisposable
type IDataReader = interface
    interface IDisposable
    interface IDataRecord
Public Interface IDataReader
Implements IDataRecord, IDisposable
파생
구현

예제

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

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]));
}
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

설명

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

애플리케이션의 인스턴스를 만들지 않습니다 합니다 IDataReader 인터페이스를 직접 상속 된 클래스의 인스턴스를 만들고 있지만 IDataReader합니다.

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

데이터를 읽는 동안 다른 프로세스 또는 스레드에서 결과 집합을 변경한 내용은 를 구현 IDataReader하는 클래스의 사용자에게 표시될 수 있습니다. 그러나 정확한 동작은 공급자와 타이밍에 따라 달라집니다.

구현자 참고

.NET Framework 데이터 공급자 간의 일관성을 높이기 위해 Command 형식 Prv 에서 상속 클래스의 이름을 지정합니다. 여기서 Prv 는 특정 .NET Framework 데이터 공급자 네임스페이스의 모든 클래스에 지정된 균일한 접두사입니다. 예를 들어 Sql 접두사입니다 합니다 SqlDataAdapter 클래스는 System.Data.SqlClient 네임 스페이스입니다.

사용자는 클래스의 DataReader instance 직접 만들지 않습니다. 대신 개체의 Command 메서드를 DataReader 통해 ExecuteReader instance 가져옵니다. 따라서 생성자를 내부로 표시 DataReader 해야 합니다.

속성

Depth

현재 행의 중첩 수준을 나타내는 값을 가져옵니다.

FieldCount

현재 행의 열 수를 가져옵니다.

(다음에서 상속됨 IDataRecord)
IsClosed

데이터 판독기가 닫혀 있는지 여부를 나타내는 값을 가져옵니다.

Item[Int32]

지정된 인덱스에 있는 열을 가져옵니다.

(다음에서 상속됨 IDataRecord)
Item[String]

지정된 이름을 가진 열을 가져옵니다.

(다음에서 상속됨 IDataRecord)
RecordsAffected

SQL 문을 실행하여 변경, 삽입 또는 삭제된 행 수를 가져옵니다.

메서드

Close()

IDataReader 개체를 닫습니다.

Dispose()

관리되지 않는 리소스의 확보, 해제 또는 다시 설정과 관련된 애플리케이션 정의 작업을 수행합니다.

(다음에서 상속됨 IDisposable)
GetBoolean(Int32)

지정된 열의 값에 해당하는 Boolean 값을 가져옵니다.

(다음에서 상속됨 IDataRecord)
GetByte(Int32)

지정된 열의 부호 없는 8비트 정수 값을 가져옵니다.

(다음에서 상속됨 IDataRecord)
GetBytes(Int32, Int64, Byte[], Int32, Int32)

지정된 버퍼 오프셋에서 시작하여 지정된 열 오프셋의 바이트 스트림을 배열로 버퍼에 읽어옵니다.

(다음에서 상속됨 IDataRecord)
GetChar(Int32)

지정된 열의 값에 해당하는 문자 값을 가져옵니다.

(다음에서 상속됨 IDataRecord)
GetChars(Int32, Int64, Char[], Int32, Int32)

지정된 버퍼 오프셋에서 시작하여 지정된 열 오프셋의 문자 스트림을 배열로 버퍼에 읽어옵니다.

(다음에서 상속됨 IDataRecord)
GetData(Int32)

지정된 열 서수에 대해 IDataReader를 반환합니다.

(다음에서 상속됨 IDataRecord)
GetDataTypeName(Int32)

지정된 필드에 대한 데이터 형식 정보를 가져옵니다.

(다음에서 상속됨 IDataRecord)
GetDateTime(Int32)

지정된 필드의 날짜 및 시간 데이터 값을 가져옵니다.

(다음에서 상속됨 IDataRecord)
GetDecimal(Int32)

지정된 필드의 고정 위치 숫자 값을 가져옵니다.

(다음에서 상속됨 IDataRecord)
GetDouble(Int32)

지정된 필드의 배정밀도 부동 소수점 숫자를 가져옵니다.

(다음에서 상속됨 IDataRecord)
GetFieldType(Int32)

GetValue(Int32)에서 반환되는 Object 형식에 해당하는 Type 정보를 가져옵니다.

(다음에서 상속됨 IDataRecord)
GetFloat(Int32)

지정된 필드의 단정밀도 부동 소수점 숫자를 가져옵니다.

(다음에서 상속됨 IDataRecord)
GetGuid(Int32)

지정된 필드의 GUID 값을 반환합니다.

(다음에서 상속됨 IDataRecord)
GetInt16(Int32)

지정된 필드의 부호 있는 16비트 정수 값을 가져옵니다.

(다음에서 상속됨 IDataRecord)
GetInt32(Int32)

지정된 필드의 부호 있는 32비트 정수 값을 가져옵니다.

(다음에서 상속됨 IDataRecord)
GetInt64(Int32)

지정된 필드의 부호 있는 64비트 정수 값을 가져옵니다.

(다음에서 상속됨 IDataRecord)
GetName(Int32)

찾을 필드의 이름을 가져옵니다.

(다음에서 상속됨 IDataRecord)
GetOrdinal(String)

명명된 필드의 인덱스를 반환합니다.

(다음에서 상속됨 IDataRecord)
GetSchemaTable()

DataTable의 열 메타데이터를 정의하는 IDataReader을 반환합니다.

실행된 명령이 resultset를 반환하지 않는 경우 또는 NextResult()false를 반환한 후 null을 반환합니다.

GetString(Int32)

지정된 필드의 문자열 값을 가져옵니다.

(다음에서 상속됨 IDataRecord)
GetValue(Int32)

지정된 필드의 값을 반환합니다.

(다음에서 상속됨 IDataRecord)
GetValues(Object[])

현재 레코드의 열 값으로 개체의 배열을 채웁니다.

(다음에서 상속됨 IDataRecord)
IsDBNull(Int32)

지정된 필드가 null로 설정되었는지 여부를 반환합니다.

(다음에서 상속됨 IDataRecord)
NextResult()

일괄 처리 SQL 문의 결과를 읽을 때 데이터 판독기에서 다음 결과로 진행하도록 합니다.

Read()

IDataReader를 다음 레코드로 이동합니다.

적용 대상