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.
Ü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()
- Quelle:
- SqlCommand.cs
- Quelle:
- SqlCommand.cs
- Quelle:
- SqlCommand.cs
- Quelle:
- SqlCommand.cs
Sendet die CommandText an und Connection erstellt eine SqlDataReader.
public:
Microsoft::Data::SqlClient::SqlDataReader ^ ExecuteReader();
public Microsoft.Data.SqlClient.SqlDataReader ExecuteReader();
override this.ExecuteReader : unit -> Microsoft.Data.SqlClient.SqlDataReader
Public Function ExecuteReader () As SqlDataReader
Gibt zurück
Ein SqlDataReader-Objekt.
Ausnahmen
-
Eine SqlDbType andere als
BinaryoderVarBinarywurde verwendet, als Value festgelegt Streamwurde. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support. -
Ein SqlDbType anderer als
Char,NChar,NVarChar, ,VarCharoderXmlwurde verwendet, als Value festgelegt TextReaderwurde . -
Ein SqlDbType anderer als
Xmlder Zeitpunkt, an XmlReaderdem Value festgelegt wurde.
- 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.
- 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.
- 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.
using System;
using System.Data;
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
string str = "Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=SSPI";
string qs = "SELECT OrderID, CustomerID FROM dbo.Orders;";
CreateCommand(qs, str);
}
private static void CreateCommand(string queryString,
string connectionString)
{
using (SqlConnection connection = new SqlConnection(
connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand(queryString, connection);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(String.Format("{0}", reader[0]));
}
}
}
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 ExecuteXmlReader lesen Sie BeginExecuteXmlReader FOR XML-Abfragen, um dieses Verhalten zu vermeiden.
Gilt für:
ExecuteReader(CommandBehavior)
- Quelle:
- SqlCommand.cs
- Quelle:
- SqlCommand.cs
- Quelle:
- SqlCommand.cs
- Quelle:
- SqlCommand.cs
Sendet den CommandText Wert an das ConnectionUnd erstellt einen SqlDataReader mit einem der CommandBehavior Werte.
public:
Microsoft::Data::SqlClient::SqlDataReader ^ ExecuteReader(System::Data::CommandBehavior behavior);
public Microsoft.Data.SqlClient.SqlDataReader ExecuteReader(System.Data.CommandBehavior behavior);
override this.ExecuteReader : System.Data.CommandBehavior -> Microsoft.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
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.
using System;
using System.Data;
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
string str = "Data Source=(local);Initial Catalog=Northwind;"
+ "Integrated Security=SSPI";
string qs = "SELECT OrderID, CustomerID FROM dbo.Orders;";
CreateCommand(qs, str);
}
private static void CreateCommand(string queryString,
string connectionString)
{
using (SqlConnection connection = new SqlConnection(
connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader =
command.ExecuteReader(CommandBehavior.CloseConnection);
while (reader.Read())
{
Console.WriteLine(String.Format("{0}", reader[0]));
}
}
}
}
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 ExecuteXmlReader lesen Sie BeginExecuteXmlReader FOR XML-Abfragen, um dieses Verhalten zu vermeiden.