다음을 통해 공유


SqlDataReader 클래스

정의

SQL Server 데이터베이스에서 행의 앞으로만 이동 가능한 스트림을 읽을 수 있게 합니다. 이 클래스는 상속될 수 없습니다.

public ref class SqlDataReader : System::Data::Common::DbDataReader, IDisposable
public ref class SqlDataReader sealed : MarshalByRefObject, IDisposable, System::Collections::IEnumerable, System::Data::IDataReader
public ref class SqlDataReader : System::Data::Common::DbDataReader, System::Data::Common::IDbColumnSchemaGenerator
public class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
public sealed class SqlDataReader : MarshalByRefObject, IDisposable, System.Collections.IEnumerable, System.Data.IDataReader
public class SqlDataReader : System.Data.Common.DbDataReader, System.Data.Common.IDbColumnSchemaGenerator
type SqlDataReader = class
    inherit DbDataReader
    interface IDisposable
type SqlDataReader = class
    inherit MarshalByRefObject
    interface IEnumerable
    interface IDataReader
    interface IDisposable
    interface IDataRecord
type SqlDataReader = class
    inherit DbDataReader
    interface IDataReader
    interface IDisposable
    interface IDataRecord
type SqlDataReader = class
    inherit DbDataReader
    interface IDataReader
    interface IDataRecord
    interface IDisposable
    interface IDbColumnSchemaGenerator
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
Public NotInheritable Class SqlDataReader
Inherits MarshalByRefObject
Implements IDataReader, IDisposable, IEnumerable
Public Class SqlDataReader
Inherits DbDataReader
Implements IDbColumnSchemaGenerator
상속
SqlDataReader
상속
상속
SqlDataReader
구현

예제

다음 예제에서는 , 및 를 SqlCommandSqlDataReader만듭니다SqlConnection. 이 예제에서는 데이터를 읽고 콘솔 창에 기록합니다. 그런 다음 코드는 를 SqlDataReader닫습니다. 는 SqlConnection 코드 블록의 using 끝에서 자동으로 닫힙니다.

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

설명

SqlDataReader만들려면 생성자를 직접 사용하는 대신 개체의 SqlCommand 메서드를 호출 ExecuteReader 해야 합니다.

SqlDataReader 사용하는 동안 연결된 SqlConnection 가 를 제공하는 SqlDataReader데 사용 중이며 닫는 작업 외에는 SqlConnection 다른 작업을 수행할 수 없습니다. 의 메서드 SqlDataReaderClose 호출될 때까지의 경우입니다. 예를 들어 를 호출 Close할 때까지 출력 매개 변수를 검색할 수 없습니다.

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

IsClosed가 닫힌 후 호출할 수 있는 속성은 RecordsAffectedSqlDataReader뿐입니다. 가 있는 동안 속성에 RecordsAffected 액세스할 수 있지만 항상 값을 반환하기 전에 를 호출 Close 하여 RecordsAffected 정확한 반환 값을 보장 SqlDataReader 합니다.

순차 액세스(CommandBehavior.SequentialAccess) InvalidOperationException 를 사용하는 경우 위치가 고급이고 이전 열에서 SqlDataReader 다른 읽기 작업을 시도하면 가 발생합니다.

참고

최적의 성능을 SqlDataReader 위해 는 불필요한 개체를 만들거나 불필요한 데이터 복사본을 만들지 않도록 합니다. 따라서 같은 GetValue 메서드에 대한 여러 호출은 동일한 개체에 대한 참조를 반환합니다. 와 같은 GetValue메서드에서 반환된 개체의 기본 값을 수정하는 경우 주의해야 합니다.

속성

Connection

SqlConnection와 연결된 SqlDataReader를 가져옵니다.

Depth

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

FieldCount

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

HasRows

SqlDataReader에 하나 이상의 행이 있는지 여부를 나타내는 값을 가져옵니다.

IsClosed

지정된 SqlDataReader 인스턴스가 닫혔는지 여부를 나타내는 부울 값을 검색합니다.

Item[Int32]

열 서수가 지정된 경우, 지정된 열의 값을 네이티브 형식으로 가져옵니다.

Item[String]

열 이름이 지정된 경우, 지정된 열의 값을 네이티브 형식으로 가져옵니다.

RecordsAffected

Transact-SQL 문의 실행에 의해 변경, 삽입 및 삭제된 행의 개수를 가져옵니다.

VisibleFieldCount

표시되는 SqlDataReader의 필드 수를 가져옵니다.

메서드

Close()

SqlDataReader 개체를 닫습니다.

Close()

DbDataReader 개체를 닫습니다.

(다음에서 상속됨 DbDataReader)
CloseAsync()

DbDataReader 개체를 비동기적으로 닫습니다.

(다음에서 상속됨 DbDataReader)
CreateObjRef(Type)

원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다.

(다음에서 상속됨 MarshalByRefObject)
Dispose()

DbDataReader 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.

(다음에서 상속됨 DbDataReader)
Dispose(Boolean)

SQL Server 데이터베이스에서 행의 앞으로만 이동 가능한 스트림을 읽을 수 있게 합니다. 이 클래스는 상속될 수 없습니다.

Dispose(Boolean)

DbDataReader에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다.

(다음에서 상속됨 DbDataReader)
DisposeAsync()

DbDataReader 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 비동기식으로 해제합니다.

(다음에서 상속됨 DbDataReader)
Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

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

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

GetByte(Int32)

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

GetBytes(Int32, Int64, Byte[], Int32, Int32)

지정한 열 오프셋에서 지정한 버퍼 오프셋에서 시작하는 버퍼 배열로 바이트의 스트림을 참고합니다.

GetChar(Int32)

지정한 열의 값을 단일 문자로 가져옵니다.

GetChars(Int32, Int64, Char[], Int32, Int32)

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

GetColumnSchema()

읽기 전용 열 스키마 컬렉션을 가져옵니다.

GetColumnSchemaAsync(CancellationToken)

GetColumnSchema(DbDataReader)의 비동기 버전입니다. 공급자는 적절한 구현을 재정의해야 합니다. cancellationToken을 선택적으로 적용할 수 있습니다. 기본 구현은 동기 GetColumnSchema(DbDataReader) 호출을 호출하고 완료된 작업을 반환합니다. 기본 구현은 이미 취소된 cancellationToken을 전달하는 경우 취소된 작업을 반환합니다. GetColumnSchema(DbDataReader)에서 throw되는 예외는 반환된 Task Exception 속성을 통해 전달됩니다.

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

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

GetData(Int32)

요청된 열의 중첩된 데이터 판독기를 반환합니다.

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

지정된 열의 데이터 형식을 나타내는 문자열을 가져옵니다.

GetDateTime(Int32)

지정된 열의 값에 해당하는 DateTime 개체를 가져옵니다.

GetDateTimeOffset(Int32)

지정된 열의 값을 DateTimeOffset 개체로 검색합니다.

GetDbDataReader(Int32)

요청된 열 서수에 대한 DbDataReader 개체를 반환합니다. 이 개체는 공급자별 구현으로 재정의할 수 있습니다.

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

지정된 열의 값에 해당하는 Decimal 개체를 가져옵니다.

GetDouble(Int32)

지정한 열의 값을 배정밀도 부동 소수점 숫자로 가져옵니다.

GetEnumerator()

IEnumerator를 반복하는 SqlDataReader를 반환합니다.

GetFieldType(Int32)

개체의 데이터 형식인 Type을 가져옵니다.

GetFieldValue<T>(Int32)

지정된 열의 값을 형식으로 동기적으로 가져옵니다. GetFieldValueAsync<T>(Int32, CancellationToken)은 이 메서드의 비동기 버전입니다.

GetFieldValue<T>(Int32)

지정된 열의 값을 요청된 형식으로 가져옵니다.

(다음에서 상속됨 DbDataReader)
GetFieldValueAsync<T>(Int32)

지정된 열의 값을 요청된 형식으로 비동기적으로 가져옵니다.

(다음에서 상속됨 DbDataReader)
GetFieldValueAsync<T>(Int32, CancellationToken)

지정된 열의 값을 형식으로 비동기적으로 가져옵니다. GetFieldValue<T>(Int32)은 이 메서드의 동기 버전입니다.

GetFieldValueAsync<T>(Int32, CancellationToken)

지정된 열의 값을 요청된 형식으로 비동기적으로 가져옵니다.

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

지정된 열의 값에 해당하는 단정밀도 부동 소수점 숫자를 가져옵니다.

GetGuid(Int32)

지정한 열의 값을 GUID(Globally Unique Identifier)로 가져옵니다.

GetHashCode()

기본 해시 함수로 작동합니다.

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

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

GetInt32(Int32)

지정된 열의 값에 해당하는 32비트 부호 있는 정수를 가져옵니다.

GetInt64(Int32)

지정된 열의 값에 해당하는 64비트 부호 있는 정수를 가져옵니다.

GetLifetimeService()
사용되지 않음.

이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다.

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

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

GetOrdinal(String)

열 이름이 지정된 경우 열 서수를 가져옵니다.

GetProviderSpecificFieldType(Int32)

내부 공급자별 필드 형식의 표현인 Object를 가져옵니다.

GetProviderSpecificValue(Int32)

내부 공급자별 값의 표현인 Object를 가져옵니다.

GetProviderSpecificValues(Object[])

내부 공급자별 값의 표현인 개체로 구성된 배열을 가져옵니다.

GetSchemaTable()

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

GetSchemaTable()

DataTable의 열 메타데이터를 정의하는 DbDataReader을 반환합니다. 실행된 명령이 resultset를 반환하지 않는 경우 또는 NextResult()false를 반환한 후 null을 반환합니다.

(다음에서 상속됨 DbDataReader)
GetSchemaTableAsync(CancellationToken)

GetSchemaTable()의 비동기 버전입니다. 공급자는 적절한 구현을 재정의해야 합니다. cancellationToken을 선택적으로 적용할 수 있습니다. 기본 구현은 동기 GetSchemaTable() 호출을 호출하고 완료된 작업을 반환합니다. 기본 구현은 이미 취소된 cancellationToken을 전달하는 경우 취소된 작업을 반환합니다. GetSchemaTable()에서 throw되는 예외는 반환된 Task Exception 속성을 통해 전달됩니다.

(다음에서 상속됨 DbDataReader)
GetSqlBinary(Int32)

SqlBinary으로 지정된 열 값을 가져옵니다.

GetSqlBoolean(Int32)

SqlBoolean으로 지정된 열 값을 가져옵니다.

GetSqlByte(Int32)

SqlByte으로 지정된 열 값을 가져옵니다.

GetSqlBytes(Int32)

SqlBytes로 지정된 열 값을 가져옵니다.

GetSqlChars(Int32)

SqlChars로 지정된 열 값을 가져옵니다.

GetSqlDateTime(Int32)

SqlDateTime으로 지정된 열 값을 가져옵니다.

GetSqlDecimal(Int32)

SqlDecimal으로 지정된 열 값을 가져옵니다.

GetSqlDouble(Int32)

SqlDouble으로 지정된 열 값을 가져옵니다.

GetSqlGuid(Int32)

SqlGuid으로 지정된 열 값을 가져옵니다.

GetSqlInt16(Int32)

SqlInt16으로 지정된 열 값을 가져옵니다.

GetSqlInt32(Int32)

SqlInt32으로 지정된 열 값을 가져옵니다.

GetSqlInt64(Int32)

SqlInt64으로 지정된 열 값을 가져옵니다.

GetSqlMoney(Int32)

SqlMoney으로 지정된 열 값을 가져옵니다.

GetSqlSingle(Int32)

SqlSingle으로 지정된 열 값을 가져옵니다.

GetSqlString(Int32)

SqlString으로 지정된 열 값을 가져옵니다.

GetSqlValue(Int32)

지정된 열의 데이터 값을 SQL Server 형식으로 반환합니다.

GetSqlValues(Object[])

레코드에 있는 모든 열의 값을 SQL Server 형식으로 나타낸 값이 들어 있는 Object의 배열을 채웁니다.

GetSqlXml(Int32)

지정된 열의 값을 XML 값으로 가져옵니다.

GetStream(Int32)

이진, 이미지, varbinary, UDT 및 variant 데이터 형식을 Stream으로 검색합니다.

GetStream(Int32)

지정된 열에서 데이터를 검색하는 스트림을 가져옵니다.

(다음에서 상속됨 DbDataReader)
GetString(Int32)

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

GetTextReader(Int32)

Char, NChar, NText, NVarChar, 텍스트, varChar 및 Variant 데이터 형식을 TextReader로 검색합니다.

GetTextReader(Int32)

열에서 데이터를 검색하는 텍스트 판독기를 가져옵니다.

(다음에서 상속됨 DbDataReader)
GetTimeSpan(Int32)

지정된 열의 값을 TimeSpan 개체로 검색합니다.

GetType()

현재 인스턴스의 Type을 가져옵니다.

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

지정된 열의 값을 네이티브 형식으로 가져옵니다.

GetValues(Object[])

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

GetXmlReader(Int32)

형식 XML의 데이터를 XmlReader로 검색합니다.

InitializeLifetimeService()
사용되지 않음.

이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다.

(다음에서 상속됨 MarshalByRefObject)
IsCommandBehavior(CommandBehavior)

지정된 CommandBehaviorSqlDataReader의 명령 동작과 일치하는지 여부를 확인합니다.

IsDBNull(Int32)

열의 값이 존재하지 않거나 누락되었는지 여부를 나타내는 값을 가져옵니다.

IsDBNullAsync(Int32)

열의 값이 존재하지 않거나 누락되었는지 여부를 나타내는 값을 비동기적으로 가져옵니다.

(다음에서 상속됨 DbDataReader)
IsDBNullAsync(Int32, CancellationToken)

존재하지 않거나 누락된 값이 열에 포함되었는지 여부를 나타내는 값을 가져오는 IsDBNull(Int32)의 비동기 버전입니다.

취소 토큰은 명령 시간 제한이 경과하기 전에 작업을 취소하는 요청에 사용할 수 있습니다. 예외는 반환된 작업 개체를 통해 보고됩니다.

IsDBNullAsync(Int32, CancellationToken)

열의 값이 존재하지 않거나 누락되었는지 여부를 나타내는 값을 비동기적으로 가져옵니다.

(다음에서 상속됨 DbDataReader)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
MemberwiseClone(Boolean)

현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다.

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

일괄 Transact-SQL 문의 결과를 읽을 때, 데이터 판독기를 다음 결과로 이동합니다.

NextResultAsync()

일괄 문의 결과를 읽을 때 판독기를 다음 결과로 비동기로 이동합니다.

(다음에서 상속됨 DbDataReader)
NextResultAsync(CancellationToken)

일괄 처리 Transact-SQL 문의 결과를 읽을 때 데이터 판독기를 다음 결과로 진행하는 의 비동기 버전 NextResult()입니다.

취소 토큰은 명령 시간 제한이 경과하기 전에 작업을 취소하는 요청에 사용할 수 있습니다. 예외는 반환된 작업 개체를 통해 보고됩니다.

NextResultAsync(CancellationToken)

일괄 문의 결과를 읽을 때 판독기를 다음 결과로 비동기로 이동합니다.

(다음에서 상속됨 DbDataReader)
Read()

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

ReadAsync()

판독기를 결과 집합의 다음 레코드로 비동기로 이동합니다.

(다음에서 상속됨 DbDataReader)
ReadAsync(CancellationToken)

Read()를 다음 레코드로 이동하는 비동기 버전의 SqlDataReader입니다.

취소 토큰은 명령 시간 제한이 경과하기 전에 작업을 취소하는 요청에 사용할 수 있습니다. 예외는 반환된 작업 개체를 통해 보고됩니다.

ReadAsync(CancellationToken)

판독기를 결과 집합의 다음 레코드로 비동기로 이동합니다.

(다음에서 상속됨 DbDataReader)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IDataReader.Close()

이 멤버에 대한 설명은 Close()를 참조하세요.

(다음에서 상속됨 DbDataReader)
IDataReader.GetSchemaTable()

이 멤버에 대한 설명은 GetSchemaTable()를 참조하세요.

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

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

IDataRecord.GetData(Int32)

이 멤버에 대한 설명은 GetData(Int32)를 참조하세요.

(다음에서 상속됨 DbDataReader)
IDisposable.Dispose()

데이터 판독기에서 사용하는 모든 리소스를 해제합니다.

IEnumerable.GetEnumerator()

항목 컬렉션 전체에서 반복하는 데 사용할 수 있는 열거자를 반환합니다.

확장 메서드

CanGetColumnSchema(DbDataReader)

DbDataReader에서 열 스키마를 가져올 수 있는지를 나타내는 값을 가져옵니다.

GetColumnSchema(DbDataReader)

DbDataReader에 대한 열 스키마(DbColumn 컬렉션)를 가져옵니다.

Cast<TResult>(IEnumerable)

IEnumerable의 요소를 지정된 형식으로 캐스팅합니다.

OfType<TResult>(IEnumerable)

지정된 형식에 따라 IEnumerable의 요소를 필터링합니다.

AsParallel(IEnumerable)

쿼리를 병렬화할 수 있도록 합니다.

AsQueryable(IEnumerable)

IEnumerableIQueryable로 변환합니다.

적용 대상

추가 정보