Freigeben über


SqlCommand.ExecuteReader Methode

Definition

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()

Quelle:
System.Data.SqlClient.notsupported.cs

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)

Quelle:
System.Data.SqlClient.notsupported.cs

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

Gilt für: