SqlDataReader 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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 class SqlDataReader : System.Data.Common.DbDataReader, IDisposable
public sealed class SqlDataReader : MarshalByRefObject, IDisposable, System.Collections.IEnumerable, System.Data.IDataReader
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
Public Class SqlDataReader
Inherits DbDataReader
Implements IDisposable
Public NotInheritable Class SqlDataReader
Inherits MarshalByRefObject
Implements IDataReader, IDisposable, IEnumerable
- 상속
- 상속
- 상속
- 구현
예제
다음 예제에서는 , a SqlConnection및 . SqlCommand를 SqlDataReader만듭니다. 이 예제에서는 데이터를 읽고 콘솔 창에 기록합니다. 그런 다음 코드는 을 닫습니다 SqlDataReader.
SqlConnection 코드 블록의 using 끝에서 자동으로 닫힙니다.
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
설명
만들SqlDataReader려면 생성자를 직접 사용하는 대신 개체의 SqlCommand 메서드를 호출 ExecuteReader 해야 합니다.
SqlDataReader 사용 중인 동안 연결된 SqlConnection 사용자가 사용 SqlDataReader중이며 닫는 작업 외에는 SqlConnection 다른 작업을 수행할 수 없습니다. 메서드가 호출될 때까지 CloseSqlDataReader 의 경우입니다. 예를 들어 호출 Close후까지 출력 매개 변수를 검색할 수 없습니다.
데이터를 읽는 동안 다른 프로세스 또는 스레드가 설정한 결과 집합에 대한 변경 내용이 해당 사용자의 SqlDataReader사용자에게 표시될 수 있습니다. 그러나 정확한 동작은 타이밍에 따라 달라집니다.
IsClosed RecordsAffected 은 닫힌 후 SqlDataReader 호출할 수 있는 유일한 속성입니다. 속성이 RecordsAffected 있는 동안 SqlDataReader 에 액세스할 수 있지만 정확한 반환 값을 보장하기 위해 값을 RecordsAffected 반환하기 전에 항상 호출 Close 합니다.
순차 액세스(CommandBehavior.SequentialAccess) InvalidOperationException 를 사용하는 경우 위치가 고급이고 이전 열에서 SqlDataReader 다른 읽기 작업을 시도하면 발생합니다.
메모
최적의 성능을 SqlDataReader 위해 불필요한 개체를 만들거나 불필요한 데이터 복사본을 만들지 않도록 합니다. 따라서 동일한 개체에 대한 참조를 반환하는 것과 같은 GetValue 메서드를 여러 차례 호출합니다. 와 같은 GetValue메서드에서 반환된 개체의 기본 값을 수정하는 경우 주의해야 합니다.
속성
| Name | Description |
|---|---|
| Connection |
에 SqlConnection 연결된 값을 SqlDataReader가져옵니다. |
| Depth |
현재 행의 중첩 깊이를 나타내는 값을 가져옵니다. |
| FieldCount |
현재 행의 열 수를 가져옵니다. |
| HasRows |
행이 하나 이상 포함되어 있는지 여부를 SqlDataReader 나타내는 값을 가져옵니다. |
| IsClosed |
지정된 SqlDataReader 인스턴스가 닫혔는지 여부를 나타내는 부울 값을 검색합니다. |
| Item[Int32] |
열 서수가 지정된 경우 지정된 열의 값을 네이티브 형식으로 가져옵니다. |
| Item[String] |
열 이름이 지정된 경우 지정된 열의 값을 네이티브 형식으로 가져옵니다. |
| RecordsAffected |
Transact-SQL 문을 실행하여 변경, 삽입 또는 삭제된 행 수를 가져옵니다. |
| VisibleFieldCount |
숨겨지지 않은 필드 SqlDataReader 의 수를 가져옵니다. |
메서드
| Name | Description |
|---|---|
| Close() |
개체를 닫습니다 SqlDataReader . |
| CreateObjRef(Type) |
원격 개체와 통신하는 데 사용되는 프록시를 생성하는 데 필요한 모든 관련 정보를 포함하는 개체를 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
| Dispose() |
클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다 DbDataReader . (다음에서 상속됨 DbDataReader) |
| Dispose(Boolean) |
관리되지 않는 리소스를 DbDataReader 해제하고 관리되는 리소스를 선택적으로 해제합니다. (다음에서 상속됨 DbDataReader) |
| Equals(Object) |
지정된 개체가 현재 개체와 같은지 여부를 확인합니다. (다음에서 상속됨 Object) |
| GetBoolean(Int32) |
지정된 열의 값을 부울로 가져옵니다. |
| GetByte(Int32) |
지정된 열의 값을 바이트로 가져옵니다. |
| GetBytes(Int32, Int64, Byte[], Int32, Int32) |
지정된 열 오프셋에서 지정된 버퍼 오프셋에서 시작하는 배열로 바이트 스트림을 읽습니다. |
| GetChar(Int32) |
지정된 열의 값을 단일 문자로 가져옵니다. |
| GetChars(Int32, Int64, Char[], Int32, Int32) |
지정된 열 오프셋에서 버퍼로 문자 스트림을 지정된 버퍼 오프셋에서 시작하는 배열로 읽습니다. |
| 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) 는 이 메서드의 비동기 버전입니다. |
| GetFieldValueAsync<T>(Int32, CancellationToken) |
지정된 열의 값을 형식으로 비동기적으로 가져옵니다. GetFieldValue<T>(Int32) 는 이 메서드의 동기 버전입니다. |
| GetFieldValueAsync<T>(Int32) |
지정된 열의 값을 요청된 형식으로 비동기적으로 가져옵니다. (다음에서 상속됨 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) |
|
| GetProviderSpecificValue(Int32) |
|
| 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, text, varChar 및 Variant 데이터 형식을 .로 TextReader검색합니다. |
| GetTimeSpan(Int32) |
지정된 열의 값을 개체로 TimeSpan 검색합니다. |
| GetType() |
현재 인스턴스의 Type 가져옵니다. (다음에서 상속됨 Object) |
| GetValue(Int32) |
지정된 열의 값을 네이티브 형식으로 가져옵니다. |
| GetValues(Object[]) |
개체 배열을 현재 행의 열 값으로 채웁니다. |
| GetXmlReader(Int32) |
XML 형식의 데이터를 .로 검색합니다 XmlReader. |
| InitializeLifetimeService() |
사용되지 않음.
이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다. (다음에서 상속됨 MarshalByRefObject) |
| IsCommandBehavior(CommandBehavior) |
지정된 CommandBehavior 값이 .의 SqlDataReader 값과 일치하는지 여부를 확인합니다. |
| IsDBNull(Int32) |
열에 존재하지 않거나 누락된 값이 포함되어 있는지 여부를 나타내는 값을 가져옵니다. |
| IsDBNullAsync(Int32, CancellationToken) |
열에 존재하지 않거나 누락된 값이 포함되어 있는지 여부를 나타내는 값을 가져오는 비동기 버전 IsDBNull(Int32)입니다. 취소 토큰을 사용하여 명령 시간 제한이 경과하기 전에 작업을 중단하도록 요청할 수 있습니다. 반환된 Task 개체를 통해 예외가 보고됩니다. |
| IsDBNullAsync(Int32) |
열에 존재하지 않거나 누락된 값이 포함되어 있는지 여부를 나타내는 값을 비동기적으로 가져옵니다. (다음에서 상속됨 DbDataReader) |
| MemberwiseClone() |
현재 Object단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
| MemberwiseClone(Boolean) |
현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
| NextResult() |
일괄 처리 Transact-SQL 문의 결과를 읽을 때 데이터 판독기를 다음 결과로 진행합니다. |
| NextResultAsync() |
문 일괄 처리 결과를 읽을 때 판독기를 다음 결과로 비동기적으로 진행합니다. (다음에서 상속됨 DbDataReader) |
| NextResultAsync(CancellationToken) |
일괄 처리 Transact-SQL 문의 결과를 읽을 때 데이터 판독기를 다음 결과로 발전시키는 비동기 버전 NextResult()입니다. 취소 토큰을 사용하여 명령 시간 제한이 경과하기 전에 작업을 중단하도록 요청할 수 있습니다. 반환된 Task 개체를 통해 예외가 보고됩니다. |
| Read() |
다음 레코드로 진행합니다 SqlDataReader . |
| ReadAsync() |
결과 집합의 다음 레코드로 판독기를 비동기적으로 진행합니다. (다음에서 상속됨 DbDataReader) |
| ReadAsync(CancellationToken) |
다음 레코드로 진행 SqlDataReader 하는 비동기 버전Read()입니다. 취소 토큰을 사용하여 명령 시간 제한이 경과하기 전에 작업을 중단하도록 요청할 수 있습니다. 반환된 Task 개체를 통해 예외가 보고됩니다. |
| ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
| Name | Description |
|---|---|
| IDataReader.Close() |
이 멤버에 대한 설명은 을 참조하세요 Close(). (다음에서 상속됨 DbDataReader) |
| IDataReader.GetSchemaTable() |
이 멤버에 대한 설명은 을 참조하세요 GetSchemaTable(). (다음에서 상속됨 DbDataReader) |
| IDataRecord.GetData(Int32) |
IDataReader 지정된 열 서수에 대한 값을 반환합니다. |
| IDataRecord.GetData(Int32) |
이 멤버에 대한 설명은 을 참조하세요 GetData(Int32). (다음에서 상속됨 DbDataReader) |
| IDisposable.Dispose() |
데이터 판독기에서 사용하는 모든 리소스를 해제합니다. |
| IEnumerable.GetEnumerator() |
항목 컬렉션을 반복하는 데 사용할 수 있는 열거자를 반환합니다. |
확장명 메서드
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
쿼리의 병렬 처리를 사용하도록 설정합니다. |
| AsQueryable(IEnumerable) |
IEnumerable IQueryable변환합니다. |
| CanGetColumnSchema(DbDataReader) |
열 스키마를 DbDataReader 가져올 수 있는지 여부를 나타내는 값을 가져옵니다. |
| Cast<TResult>(IEnumerable) |
IEnumerable 요소를 지정된 형식으로 캐스팅합니다. |
| GetColumnSchema(DbDataReader) |
에 대한 열 스키마(DbColumn 컬렉션)를 DbDataReader가져옵니다. |
| OfType<TResult>(IEnumerable) |
지정된 형식에 따라 IEnumerable 요소를 필터링합니다. |