다음을 통해 공유


SqlDataReader 클래스

정의

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

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

예제

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

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

}

설명

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 문의 실행에 의해 변경, 삽입 및 삭제된 행의 개수를 가져옵니다.

SensitivityClassification

를 사용하여 SensitivityClassification 정보를 가져옵니다 SqlDataReader.

VisibleFieldCount

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

메서드

Close()

SqlDataReader 개체를 닫습니다.

Dispose(Boolean)

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

GetBoolean(Int32)

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

GetByte(Int32)

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

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

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

GetChar(Int32)

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

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

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

GetColumnSchema()

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

GetDataTypeName(Int32)

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

GetDateTime(Int32)

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

GetDateTimeOffset(Int32)

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

GetDecimal(Int32)

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

GetDouble(Int32)

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

GetEnumerator()

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

GetFieldType(Int32)

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

GetFieldValue<T>(Int32)

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

GetFieldValueAsync<T>(Int32, CancellationToken)

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

GetFloat(Int32)

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

GetGuid(Int32)

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

GetInt16(Int32)

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

GetInt32(Int32)

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

GetInt64(Int32)

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

GetName(Int32)

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

GetOrdinal(String)

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

GetProviderSpecificFieldType(Int32)

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

GetProviderSpecificValue(Int32)

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

GetProviderSpecificValues(Object[])

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

GetSchemaTable()

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

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으로 검색합니다.

GetString(Int32)

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

GetTextReader(Int32)

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

GetTimeSpan(Int32)

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

GetValue(Int32)

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

GetValues(Object[])

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

GetXmlReader(Int32)

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

IsCommandBehavior(CommandBehavior)

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

IsDBNull(Int32)

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

IsDBNullAsync(Int32, CancellationToken)

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

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

NextResult()

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

NextResultAsync(CancellationToken)

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

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

Read()

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

ReadAsync(CancellationToken)

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

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

명시적 인터페이스 구현

IDataRecord.GetData(Int32)

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

적용 대상