SqlDataReader 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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 수행할 수 없습니다. 의 메서드 SqlDataReader 가 Close 호출될 때까지의 경우입니다. 예를 들어 를 호출 Close할 때까지 출력 매개 변수를 검색할 수 없습니다.
데이터를 읽는 동안 다른 프로세스나 스레드에서 결과 집합을 변경한 내용은 SqlDataReader
의 사용자에게 표시될 수 있습니다. 그러나 정확한 동작은 타이밍에 따라 변합니다.
IsClosed가 닫힌 후 호출할 수 있는 속성은 RecordsAffected 및 SqlDataReader뿐입니다. 가 있는 동안 속성에 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) |
내부 공급자별 필드 형식의 표현인 |
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, 텍스트, varChar 및 Variant 데이터 형식을 TextReader로 검색합니다. |
GetTimeSpan(Int32) |
지정된 열의 값을 TimeSpan 개체로 검색합니다. |
GetValue(Int32) |
지정된 열의 값을 네이티브 형식으로 가져옵니다. |
GetValues(Object[]) |
현재 행의 열 값으로 개체 배열을 채웁니다. |
GetXmlReader(Int32) |
형식 XML의 데이터를 XmlReader로 검색합니다. |
IsCommandBehavior(CommandBehavior) |
지정된 CommandBehavior가 SqlDataReader의 명령 동작과 일치하는지 여부를 확인합니다. |
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를 반환합니다. |