SqlCommand.ExecuteNonQuery Methode

Definition

Führt eine Transact-SQL-Anweisung für die Verbindung aus und gibt die Anzahl der betroffenen Zeilen zurück.

public:
 override int ExecuteNonQuery();
public:
 virtual int ExecuteNonQuery();
public override int ExecuteNonQuery ();
public int ExecuteNonQuery ();
override this.ExecuteNonQuery : unit -> int
abstract member ExecuteNonQuery : unit -> int
override this.ExecuteNonQuery : unit -> int
Public Overrides Function ExecuteNonQuery () As Integer
Public Function ExecuteNonQuery () As Integer

Gibt zurück

Die Anzahl der betroffenen Zeilen.

Implementiert

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

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 SqlCommand erstellt und dann mit ExecuteNonQueryausgeführt. Im Beispiel wird eine Zeichenfolge übergeben, bei der es sich um eine Transact-SQL-Anweisung (z. B. UPDATE, INSERT oder DELETE) und eine Zeichenfolge handelt, 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))
    {
        SqlCommand command = new SqlCommand(queryString, connection);
        command.Connection.Open();
        command.ExecuteNonQuery();
    }
}
Public Sub CreateCommand(ByVal queryString As String, _
  ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        command.Connection.Open()
        command.ExecuteNonQuery()
    End Using
End Sub

Hinweise

Sie können zum ExecuteNonQuery Ausführen von Katalogvorgängen (z. B. abfragen der Struktur einer Datenbank oder Erstellen von Datenbankobjekten wie Tabellen) oder zum Ändern der Daten in einer Datenbank ohne Verwendung von verwenden DataSet , indem Sie UPDATE-, INSERT- oder DELETE-Anweisungen ausführen.

Obwohl keine ExecuteNonQuery Zeilen zurückgegeben werden, werden alle Ausgabeparameter oder Rückgabewerte, die Parametern zugeordnet sind, mit Daten aufgefüllt.

Bei den Anweisungen UPDATE, INSERT und DELETE ist der Rückgabewert die Anzahl der vom Befehl betroffenen Zeilen. Bei allen anderen Anweisungstypen ist der Rückgabewert -1.

Wenn ein Trigger für eine Tabelle vorhanden ist, die eingefügt oder aktualisiert wird, enthält der Rückgabewert die Anzahl der Zeilen, die sowohl vom Einfüge- oder Aktualisierungsvorgang betroffen sind, als auch die Anzahl der Zeilen, die vom Trigger oder den Triggern betroffen sind.

Wenn SET NOCOUNT ON für die Verbindung festgelegt ist (vor oder als Teil der Ausführung des Befehls oder als Teil eines Triggers, der von der Ausführung des Befehls initiiert wird), tragen die zeilen, die von einzelnen Anweisungen betroffen sind, nicht mehr zur Anzahl der von dieser Methode betroffenen Zeilen bei.

Wenn keine Anweisungen erkannt werden, die zur Anzahl beitragen, ist der Rückgabewert -1. Wenn ein Rollback auftritt, ist der Rückgabewert ebenfalls -1.

Gilt für:

Weitere Informationen