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 die CommandText an und Connection erstellt eine SqlDataReader.
Überlädt
| Name | Beschreibung |
|---|---|
| ExecuteReader() |
Sendet die CommandText an und Connection erstellt eine SqlDataReader. |
| ExecuteReader(CommandBehavior) |
Sendet den CommandText Wert an das ConnectionUnd erstellt einen SqlDataReader mit einem der CommandBehavior Werte. |
ExecuteReader()
Sendet die CommandText an und Connection 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
Eine SqlDbType andere als Binary oder VarBinary wurde verwendet, als Value auf Stream. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support.
- oder -
Eine SqlDbType andere als Char, NChar, NVarChar, VarChar oder Xml wurde verwendet, als Value festgelegt TextReaderwurde.
- oder -
Eine SqlDbType andere als XML wurde verwendet, als Value auf XmlReader".
Ausnahme beim Ausführen des Befehls für eine gesperrte Zeile. Diese Ausnahme wird nicht generiert, wenn Sie Microsoft .NET Framework, Version 1.0 verwenden.
- oder -
Während eines Streamingvorgangs ist ein Timeout aufgetreten. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support.
Der aktuelle Zustand der Verbindung wird geschlossen. ExecuteReader() erfordert ein geöffnetes SqlConnection.
- oder -
Das SqlConnection Schließen oder Ablegen während eines Streamingvorgangs. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support.
Fehler in einem StreamOder XmlReaderTextReader Objekt während eines Streamingvorgangs. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support.
Das StreamObjekt XmlReader wurde TextReader während eines Streamingvorgangs geschlossen. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support.
Beispiele
Im folgenden Beispiel wird ein SqlCommandZeichenfolge erstellt und anschließend ausgeführt, indem eine Zeichenfolge übergeben wird, die eine Transact-SQL SELECT-Anweisung ist, 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 " StoredProcedureFestgelegt" 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, wird eine Ausnahme möglicherweise erst ausgelöst, wenn Read sie aufgerufen wird.
Das Feature für mehrere aktive Resultset (MARS) ermöglicht mehrere Aktionen mit derselben Verbindung.
Wenn Sie XML-Daten verwenden ExecuteReader oder BeginExecuteReader darauf zugreifen, gibt SQL Server alle XML-Ergebnisse zurück, die größer als 2.033 Zeichen in mehreren Zeilen mit jeweils 2.033 Zeichen sind. Verwenden Oder BeginExecuteXmlReader lesen Sie ExecuteXmlReader FOR XML-Abfragen, um dieses Verhalten zu vermeiden.
Weitere Informationen
Gilt für:
ExecuteReader(CommandBehavior)
Sendet den CommandText Wert an das ConnectionUnd 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
Eine SqlDbType andere als Binary oder VarBinary wurde verwendet, als Value auf Stream. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support.
- oder -
Eine SqlDbType andere als Char, NChar, NVarChar, VarChar oder Xml wurde verwendet, als Value festgelegt TextReaderwurde.
- oder -
Eine SqlDbType andere als XML wurde verwendet, als Value auf XmlReader".
Während eines Streamingvorgangs ist ein Timeout aufgetreten. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support.
Fehler in einem StreamOder XmlReaderTextReader Objekt während eines Streamingvorgangs. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support.
Das SqlConnection Schließen oder Ablegen während eines Streamingvorgangs. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support.
Das StreamObjekt XmlReader wurde TextReader während eines Streamingvorgangs geschlossen. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support.
Beispiele
Im folgenden Beispiel wird ein SqlCommandZeichenfolge erstellt und anschließend ausgeführt, indem eine Zeichenfolge übergeben wird, die eine Transact-SQL SELECT-Anweisung ist, und eine Zeichenfolge, die zum Herstellen einer Verbindung mit der Datenquelle verwendet werden soll. CommandBehavior ist auf 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 " StoredProcedureFestgelegt" 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 ein OutOfMemoryException auftreten, und die Verbindung wird geschlossen.
Das Feature für mehrere aktive Resultset (MARS) ermöglicht mehrere Aktionen mit derselben Verbindung.
Wenn Sie XML-Daten verwenden ExecuteReader oder BeginExecuteReader darauf zugreifen, gibt SQL Server alle XML-Ergebnisse zurück, die größer als 2.033 Zeichen in mehreren Zeilen mit jeweils 2.033 Zeichen sind. Verwenden Oder BeginExecuteXmlReader lesen Sie ExecuteXmlReader FOR XML-Abfragen, 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