Teilen über


SqlCommand.ExecuteReader Methode

Definition

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 StoredProcedurefestgelegt 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 StoredProcedurefestgelegt 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

Gilt für: