SqlCommand.ExecuteReader Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Sendet CommandText an Connection und erstellt eine SqlDataReader.
Überlädt
ExecuteReader() |
Sendet CommandText an Connection und erstellt eine SqlDataReader. |
ExecuteReader(CommandBehavior) |
Sendet CommandText an Connection, und erstellt einen SqlDataReader mit einem der CommandBehavior-Werte. |
ExecuteReader()
Sendet CommandText an Connection und erstellt eine 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
Gibt zurück
Ein SqlDataReader-Objekt.
Ausnahmen
Es wurde ein anderer SqlDbType als Binary oder VarBinary verwendet, als Value auf Stream festgelegt wurde. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support (SqlClient-Streamingunterstützung).
- oder -
Ein SqlDbType anderes als Char, NChar, NVarChar, VarChar oder Xml wurde verwendet, wenn Value auf TextReaderfestgelegt wurde.
- oder -
Es wurde ein anderer SqlDbType als Xml verwendet, als Value auf XmlReader festgelegt wurde.
Beim Ausführen des Befehls für eine gesperrte Zeile ist eine Ausnahme aufgetreten. Diese Ausnahme tritt in Microsoft .NET Framework 1.0 nicht auf.
- oder -
Bei einem Streamingvorgang ist ein Timeout aufgetreten. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support (SqlClient-Streamingunterstützung).
Der aktuelle Zustand der Verbindung ist "Geschlossen". ExecuteReader() erfordert eine geöffnete SqlConnection.
- oder -
Die SqlConnection wurde während eines Streamingvorgangs geschlossen oder getrennt. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support (SqlClient-Streamingunterstützung).
Während eines Streamingvorgangs ist bei einem Stream-, XmlReader- oder TextReader-Objekt ein Fehler aufgetreten. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support (SqlClient-Streamingunterstützung).
Das Stream-, XmlReader- oder TextReader-Objekt wurde während eines Streamingvorgangs geschlossen. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support (SqlClient-Streamingunterstützung).
Beispiele
Im folgenden Beispiel wird ein SqlCommanderstellt und dann ausgeführt, indem eine Zeichenfolge übergeben wird, bei der es sich um eine Transact-SQL SELECT-Anweisung handelt, und eine Zeichenfolge, die zum Herstellen einer Verbindung mit der Datenquelle verwendet werden soll.
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
Hinweise
Wenn die CommandType -Eigenschaft auf StoredProcedure
festgelegt ist, sollte die CommandText -Eigenschaft auf den Namen der gespeicherten Prozedur festgelegt werden. Der Befehl führt diese gespeicherte Prozedur aus, wenn Sie aufrufen ExecuteReader.
Hinweis
Wenn eine Transaktion deadlocked ist, kann eine Ausnahme erst ausgelöst werden, wenn Read sie aufgerufen wird.
Das Feature mit mehreren aktiven Resultsets (MARS) ermöglicht mehrere Aktionen mit derselben Verbindung.
Wenn Sie XML-Daten verwenden ExecuteReader oder BeginExecuteReader darauf zugreifen, gibt SQL Server xml-Ergebnisse mit einer Länge von mehr als 2.033 Zeichen in mehreren Zeilen mit jeweils 2.033 Zeichen zurück. Verwenden Oder BeginExecuteXmlReader lesen Sie FOR XML-Abfragen, ExecuteXmlReader um dieses Verhalten zu vermeiden.
Weitere Informationen
Gilt für:
ExecuteReader(CommandBehavior)
Sendet CommandText an Connection, und erstellt einen SqlDataReader mit einem der CommandBehavior-Werte.
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
Parameter
- behavior
- CommandBehavior
Einer der CommandBehavior-Werte.
Gibt zurück
Ein SqlDataReader-Objekt.
Ausnahmen
Es wurde ein anderer SqlDbType als Binary oder VarBinary verwendet, als Value auf Stream festgelegt wurde. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support (SqlClient-Streamingunterstützung).
- oder -
Ein SqlDbType anderes als Char, NChar, NVarChar, VarChar oder Xml wurde verwendet, wenn Value auf TextReaderfestgelegt wurde.
- oder -
Es wurde ein anderer SqlDbType als Xml verwendet, als Value auf XmlReader festgelegt wurde.
Bei einem Streamingvorgang ist ein Timeout aufgetreten. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support (SqlClient-Streamingunterstützung).
Während eines Streamingvorgangs ist bei einem Stream-, XmlReader- oder TextReader-Objekt ein Fehler aufgetreten. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support (SqlClient-Streamingunterstützung).
Die SqlConnection wurde während eines Streamingvorgangs geschlossen oder getrennt. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support (SqlClient-Streamingunterstützung).
Das Stream-, XmlReader- oder TextReader-Objekt wurde während eines Streamingvorgangs geschlossen. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support (SqlClient-Streamingunterstützung).
Beispiele
Im folgenden Beispiel wird ein SqlCommanderstellt und dann ausgeführt, indem eine Zeichenfolge übergeben wird, bei der es sich um eine Transact-SQL SELECT-Anweisung handelt, und eine Zeichenfolge, die zum Herstellen einer Verbindung mit der Datenquelle verwendet werden soll. Für CommandBehavior ist CloseConnection festgelegt.
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
Hinweise
Wenn die CommandType -Eigenschaft auf StoredProcedure
festgelegt ist, sollte die CommandText -Eigenschaft auf den Namen der gespeicherten Prozedur festgelegt werden. Der Befehl führt diese gespeicherte Prozedur aus, wenn Sie aufrufen ExecuteReader.
Hinweis
Verwenden Sie SequentialAccess , um große Werte und Binärdaten abzurufen. Andernfalls kann eine OutOfMemoryException auftreten, und die Verbindung wird geschlossen.
Das Feature mit mehreren aktiven Resultsets (MARS) ermöglicht mehrere Aktionen mit derselben Verbindung.
Wenn Sie XML-Daten verwenden ExecuteReader oder BeginExecuteReader darauf zugreifen, gibt SQL Server xml-Ergebnisse mit einer Länge von mehr als 2.033 Zeichen in mehreren Zeilen mit jeweils 2.033 Zeichen zurück. Verwenden Oder BeginExecuteXmlReader lesen Sie FOR XML-Abfragen, ExecuteXmlReader um dieses Verhalten zu vermeiden.
Weitere Informationen
- Verbinden und Abrufen von Daten in ADO.NET
- Verwenden des .NET Framework-Datenanbieters für SQL Server
- Übersicht über ADO.NET