SqlCommand.ExecuteReader 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
를 CommandTextConnection 보내고 빌드합니다 SqlDataReader.
오버로드
| Name | Description |
|---|---|
| ExecuteReader() |
를 CommandTextConnection 보내고 빌드합니다 SqlDataReader. |
| ExecuteReader(CommandBehavior) |
CommandText Connection를 보내고 값 중 CommandBehavior 하나를 사용하여 빌드합니다SqlDataReader. |
ExecuteReader()
를 CommandTextConnection 보내고 빌드합니다 SqlDataReader.
public:
System::Data::SqlClient::SqlDataReader ^ ExecuteReader();
public System.Data.SqlClient.SqlDataReader ExecuteReader();
override this.ExecuteReader : unit -> System.Data.SqlClient.SqlDataReader
member this.ExecuteReader : unit -> System.Data.SqlClient.SqlDataReader
Public Function ExecuteReader () As SqlDataReader
반환
SqlDataReader 개체입니다.
예외
SqlDbType 이진 또는 VarBinary 이외의 다른 항목은 로 설정Stream되었을 때 Value 사용되었습니다. 스트리밍에 대한 자세한 내용은 SqlClient 스트리밍 지원을 참조하세요.
-또는-
SqlDbType Char, NChar, NVarChar, VarChar 또는 Xml 이외의 다른 항목은 로 설정TextReader되었을 때 Value 사용되었습니다.
-또는-
잠긴 행에 대해 명령을 실행하는 동안 예외가 발생했습니다. 이 예외는 Microsoft .NET Framework 버전 1.0을 사용할 때 생성되지 않습니다.
-또는-
스트리밍 작업 중에 시간 제한이 발생했습니다. 스트리밍에 대한 자세한 내용은 SqlClient 스트리밍 지원을 참조하세요.
연결의 현재 상태가 닫힙니다. ExecuteReader() 는 열려 SqlConnection있어야 합니다.
-또는-
SqlConnection 스트리밍 작업 중에 닫혔거나 삭제된 경우 스트리밍에 대한 자세한 내용은 SqlClient 스트리밍 지원을 참조하세요.
스트리밍 작업 중 또는 XmlReaderTextReader 개체에서 Stream오류가 발생했습니다. 스트리밍에 대한 자세한 내용은 SqlClient 스트리밍 지원을 참조하세요.
Stream또는 XmlReaderTextReader 개체가 스트리밍 작업 중에 닫혔습니다. 스트리밍에 대한 자세한 내용은 SqlClient 스트리밍 지원을 참조하세요.
예제
다음 예제에서는 Transact-SQL SqlCommandSELECT 문인 문자열과 데이터 원본에 연결하는 데 사용할 문자열을 전달하여 실행합니다.
private static void CreateCommand(string queryString,
string connectionString)
{
using (SqlConnection connection = new SqlConnection(
connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand(queryString, connection);
using(SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(String.Format("{0}", reader[0]));
}
}
}
}
Public Sub CreateCommand(ByVal queryString As String, _
ByVal connectionString As String)
Using connection As New SqlConnection(connectionString)
connection.Open()
Dim command As New SqlCommand(queryString, connection)
Dim reader As SqlDataReader = command.ExecuteReader()
Try
While reader.Read()
Console.WriteLine("{0}", reader(0))
End While
Finally
' Always call Close when done reading.
reader.Close()
End Try
End Using
End Sub
설명
속성이 CommandType 설정 StoredProcedure되면 저장 프로시 CommandText 저의 이름으로 속성을 설정해야 합니다. 이 명령은 호출 ExecuteReader할 때 이 저장 프로시저를 실행합니다.
메모
트랜잭션이 교착 상태에 빠지면 호출될 때까지 Read 예외가 throw되지 않을 수 있습니다.
MARS(다중 활성 결과 집합) 기능을 사용하면 동일한 연결을 사용하여 여러 작업을 수행할 수 있습니다.
XML 데이터를 사용 ExecuteReader 하거나 BeginExecuteReader 액세스하는 경우 SQL Server는 각각 2,033자의 여러 행에서 길이가 2,033자보다 큰 XML 결과를 반환합니다. 이 동작을 방지하려면 FOR XML 쿼리를 사용 ExecuteXmlReader 하거나 BeginExecuteXmlReader 읽습니다.
추가 정보
적용 대상
ExecuteReader(CommandBehavior)
CommandText Connection를 보내고 값 중 CommandBehavior 하나를 사용하여 빌드합니다SqlDataReader.
public:
System::Data::SqlClient::SqlDataReader ^ ExecuteReader(System::Data::CommandBehavior behavior);
public System.Data.SqlClient.SqlDataReader ExecuteReader(System.Data.CommandBehavior behavior);
override this.ExecuteReader : System.Data.CommandBehavior -> System.Data.SqlClient.SqlDataReader
member this.ExecuteReader : System.Data.CommandBehavior -> System.Data.SqlClient.SqlDataReader
Public Function ExecuteReader (behavior As CommandBehavior) As SqlDataReader
매개 변수
- behavior
- CommandBehavior
값 중 CommandBehavior 하나입니다.
반환
SqlDataReader 개체입니다.
예외
SqlDbType 이진 또는 VarBinary 이외의 다른 항목은 로 설정Stream되었을 때 Value 사용되었습니다. 스트리밍에 대한 자세한 내용은 SqlClient 스트리밍 지원을 참조하세요.
-또는-
SqlDbType Char, NChar, NVarChar, VarChar 또는 Xml 이외의 다른 항목은 로 설정TextReader되었을 때 Value 사용되었습니다.
-또는-
스트리밍 작업 중에 시간 제한이 발생했습니다. 스트리밍에 대한 자세한 내용은 SqlClient 스트리밍 지원을 참조하세요.
스트리밍 작업 중 또는 XmlReaderTextReader 개체에서 Stream오류가 발생했습니다. 스트리밍에 대한 자세한 내용은 SqlClient 스트리밍 지원을 참조하세요.
SqlConnection 스트리밍 작업 중에 닫혔거나 삭제된 경우 스트리밍에 대한 자세한 내용은 SqlClient 스트리밍 지원을 참조하세요.
Stream또는 XmlReaderTextReader 개체가 스트리밍 작업 중에 닫혔습니다. 스트리밍에 대한 자세한 내용은 SqlClient 스트리밍 지원을 참조하세요.
예제
다음 예제에서는 Transact-SQL SqlCommandSELECT 문인 문자열과 데이터 원본에 연결하는 데 사용할 문자열을 전달하여 실행합니다. CommandBehavior이 CloseConnection로 설정됩니다.
private static void CreateCommand(string queryString,
string connectionString)
{
using (SqlConnection connection = new SqlConnection(
connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
using(SqlDataReader reader =
command.ExecuteReader(CommandBehavior.CloseConnection))
{
while (reader.Read())
{
Console.WriteLine(String.Format("{0}", reader[0]));
}
}
}
}
Public Sub CreateCommand(ByVal queryString As String, _
ByVal connectionString As String)
Using connection As New SqlConnection(connectionString)
Dim command As New SqlCommand(queryString, connection)
connection.Open()
Dim reader As SqlDataReader = _
command.ExecuteReader(CommandBehavior.CloseConnection)
Try
While reader.Read()
Console.WriteLine("{0}", reader(0))
End While
Finally
' Always call Close when done reading.
reader.Close()
End Try
End Using
End Sub
설명
속성이 CommandType 설정 StoredProcedure되면 저장 프로시 CommandText 저의 이름으로 속성을 설정해야 합니다. 이 명령은 호출 ExecuteReader할 때 이 저장 프로시저를 실행합니다.
메모
큰 값과 이진 데이터를 검색하는 데 사용합니다 SequentialAccess . 그렇지 않으면 OutOfMemoryException 발생할 수 있으며 연결이 닫힙니다.
MARS(다중 활성 결과 집합) 기능을 사용하면 동일한 연결을 사용하여 여러 작업을 수행할 수 있습니다.
XML 데이터를 사용 ExecuteReader 하거나 BeginExecuteReader 액세스하는 경우 SQL Server는 각각 2,033자의 여러 행에서 길이가 2,033자보다 큰 XML 결과를 반환합니다. 이 동작을 방지하려면 FOR XML 쿼리를 사용 ExecuteXmlReader 하거나 BeginExecuteXmlReader 읽습니다.