SqlCommand.ExecuteReader Methode

Definition

Ü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

  • 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.

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.

Gilt für: