IDataReader IDataReader IDataReader IDataReader Interface

정의

데이터 소스에서 명령을 실행하여 얻은 결과 집합의 하나 이상의 앞으로만 이동 가능한 스트림을 읽는 방법을 제공하며 관계형 데이터베이스에 액세스하는 .NET Framework 데이터 공급자에 의해 구현됩니다.Provides a means of reading one or more forward-only streams of result sets obtained by executing a command at a data source, and is implemented by .NET Framework data providers that access relational databases.

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

예제

다음 예제에서는 파생된 클래스의 인스턴스를 만듭니다 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, 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 allow an inheriting class to implement a DataReader class, which provides a means 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.

애플리케이션의 인스턴스를 만들지 않습니다 합니다 IDataReader 인터페이스를 직접 상속 된 클래스의 인스턴스를 만들고 있지만 IDataReader합니다.An application does not create an instance of the IDataReader interface directly, but creates an instance of a class that inherits IDataReader.

상속 된 클래스 IDataReader 상속 된 멤버를 구현 해야 하며 일반적으로 공급자 특정 기능을 추가 하기 위한 추가 멤버를 정의 합니다.Classes that inherit IDataReader must implement the inherited members, and typically define additional members to add provider-specific functionality.

결과 집합을 다른 변경 내용을 처리 하거나 구현 하는 클래스의 사용자에 게 표시 될 수 있습니다 데이터를 읽는 동안 스레드는 IDataReader합니다.Changes made to a result set by another process or thread while data is being read may be visible to the user of a class that implements an IDataReader. 그러나 정확한 동작은 공급자와 시간에 따라 다릅니다.However, the precise behavior is both provider and timing dependent.

구현자 참고

.NET Framework 데이터 공급자의 일관성 수준을 올릴 폼에서 상속 하는 클래스의 이름을 Prv where 명령을 Prv 는 특정.NET Framework 데이터 공급자 네임 스페이스의 모든 클래스에 지정 된 일관 된 접두사입니다.To promote consistency among .NET Framework data providers, name the inheriting class in the form Prv Command where Prv is the uniform prefix given to all classes in a specific .NET Framework data provider namespace. 예를 들어 Sql 접두사입니다 합니다 SqlDataAdapter 클래스는 System.Data.SqlClient 네임 스페이스입니다.For example, Sql is the prefix of the SqlDataAdapter class in the System.Data.SqlClient namespace.

사용자의 인스턴스를 만들지 마십시오를 DataReader 클래스를 직접.Users do not create an instance of a DataReader class directly. 대신 가져올 수는 DataReader 를 통해 인스턴스를 ExecuteReader 메서드의 Command 개체입니다.Instead, they obtain the DataReader instance through the ExecuteReader method of the Command object. 따라서 표시 해야 DataReader 생성자 내부로 합니다.Therefore, you should mark DataReader constructors as internal.

속성

Depth Depth Depth Depth

현재 행의 중첩 수준을 나타내는 값을 가져옵니다.Gets a value indicating the depth of nesting for the current row.

FieldCount FieldCount FieldCount FieldCount

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

(Inherited from IDataRecord)
IsClosed IsClosed IsClosed IsClosed

데이터 판독기가 닫혀 있는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether the data reader is closed.

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

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

(Inherited from IDataRecord)
Item[String] Item[String] Item[String] Item[String]

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

(Inherited from IDataRecord)
RecordsAffected RecordsAffected RecordsAffected RecordsAffected

SQL 문을 실행하여 변경, 삽입 또는 삭제된 행 수를 가져옵니다.Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.

메서드

Close() Close() Close() Close()

IDataReader 개체를 닫습니다.Closes the IDataReader Object.

Dispose() Dispose() Dispose() Dispose()

관리되지 않는 리소스의 확보, 해제 또는 다시 설정과 관련된 애플리케이션 정의 작업을 수행합니다.Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

(Inherited from IDisposable)
GetBoolean(Int32) GetBoolean(Int32) GetBoolean(Int32) GetBoolean(Int32)

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

(Inherited from IDataRecord)
GetByte(Int32) GetByte(Int32) GetByte(Int32) GetByte(Int32)

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

(Inherited from IDataRecord)
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.

(Inherited from IDataRecord)
GetChar(Int32) GetChar(Int32) GetChar(Int32) GetChar(Int32)

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

(Inherited from IDataRecord)
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.

(Inherited from IDataRecord)
GetData(Int32) GetData(Int32) GetData(Int32) GetData(Int32)

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

(Inherited from IDataRecord)
GetDataTypeName(Int32) GetDataTypeName(Int32) GetDataTypeName(Int32) GetDataTypeName(Int32)

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

(Inherited from IDataRecord)
GetDateTime(Int32) GetDateTime(Int32) GetDateTime(Int32) GetDateTime(Int32)

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

(Inherited from IDataRecord)
GetDecimal(Int32) GetDecimal(Int32) GetDecimal(Int32) GetDecimal(Int32)

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

(Inherited from IDataRecord)
GetDouble(Int32) GetDouble(Int32) GetDouble(Int32) GetDouble(Int32)

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

(Inherited from IDataRecord)
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).

(Inherited from IDataRecord)
GetFloat(Int32) GetFloat(Int32) GetFloat(Int32) GetFloat(Int32)

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

(Inherited from IDataRecord)
GetGuid(Int32) GetGuid(Int32) GetGuid(Int32) GetGuid(Int32)

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

(Inherited from IDataRecord)
GetInt16(Int32) GetInt16(Int32) GetInt16(Int32) GetInt16(Int32)

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

(Inherited from IDataRecord)
GetInt32(Int32) GetInt32(Int32) GetInt32(Int32) GetInt32(Int32)

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

(Inherited from IDataRecord)
GetInt64(Int32) GetInt64(Int32) GetInt64(Int32) GetInt64(Int32)

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

(Inherited from IDataRecord)
GetName(Int32) GetName(Int32) GetName(Int32) GetName(Int32)

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

(Inherited from IDataRecord)
GetOrdinal(String) GetOrdinal(String) GetOrdinal(String) GetOrdinal(String)

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

(Inherited from IDataRecord)
GetSchemaTable() GetSchemaTable() GetSchemaTable() GetSchemaTable()

DataTable의 열 메타데이터를 정의하는 IDataReader을 반환합니다.Returns a DataTable that describes the column metadata of the IDataReader.

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

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

(Inherited from IDataRecord)
GetValue(Int32) GetValue(Int32) GetValue(Int32) GetValue(Int32)

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

(Inherited from IDataRecord)
GetValues(Object[]) GetValues(Object[]) GetValues(Object[]) GetValues(Object[])

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

(Inherited from IDataRecord)
IsDBNull(Int32) IsDBNull(Int32) IsDBNull(Int32) IsDBNull(Int32)

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

(Inherited from IDataRecord)
NextResult() NextResult() NextResult() NextResult()

일괄 처리 SQL 문의 결과를 읽을 때 데이터 판독기에서 다음 결과로 진행하도록 합니다.Advances the data reader to the next result, when reading the results of batch SQL statements.

Read() Read() Read() Read()

IDataReader를 다음 레코드로 이동합니다.Advances the IDataReader to the next record.

적용 대상