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

Int32

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 -

Eine SqlDbType andere als Char, NChar, NVarChar, VarChar oder Xml wurde verwendet, als Value festgelegt TextReaderwurde.

- 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 Objekt SqlCommand erstellt und anschließend mithilfe ExecuteNonQueryvon . Das Beispiel wird eine Zeichenfolge übergeben, die eine Transact-SQL-Anweisung (z. B. UPDATE, INSERT oder DELETE) und eine Zeichenfolge ist, 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 die ExecuteNonQuery Katalogvorgänge ausführen (z. B. Abfragen der Struktur einer Datenbank oder Erstellen von Datenbankobjekten wie Tabellen) oder zum Ändern der Daten in einer Datenbank ohne Verwendung DataSet von UPDATE-, INSERT- oder DELETE-Anweisungen.

Obwohl die ExecuteNonQuery Zeilen nicht zurückgegeben werden, werden ausgabeparameter oder Rückgabewerte, die Parametern zugeordnet sind, mit Daten gefü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 Auslöser 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 von den Triggern oder Triggern betroffen sind.

Wenn SET NOCOUNT ON für die Verbindung (vor oder als Teil des Ausführens des Befehls oder als Teil eines triggers festgelegt wird, der durch die Ausführung des Befehls initiiert wird) werden die Zeilen, die von einzelnen Anweisungen betroffen sind, nicht mehr zur Anzahl der von dieser Methode zurückgegebenen Zeilen beitragen.

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

Gilt für

Siehe auch