SqlCommand.ExecuteNonQuery Methode

Definition

Führt eine Transact-SQL-Anweisung für die Verbindung aus und gibt die Anzahl der betroffenen Zeilen zurück.Executes a Transact-SQL statement against the connection and returns the number of rows affected.

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.The number of rows affected.

Implementiert

Ausnahmen

Es wurde ein anderer SqlDbType als Binary oder VarBinary verwendet, als Value auf Stream festgelegt wurde.A SqlDbType other than Binary or VarBinary was used when Value was set to Stream. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support (SqlClient-Streamingunterstützung).For more information about streaming, see SqlClient Streaming Support.

- oder --or-

Es SqlDbType wurde ein anderer als char, NCHAR, nvarchar, varchar oder XML verwendet, als Value auf festgelegt wurde TextReader .A SqlDbType other than Char, NChar, NVarChar, VarChar, or Xml was used when Value was set to TextReader.

- oder --or-

Es wurde ein anderer SqlDbType als Xml verwendet, als Value auf XmlReader festgelegt wurde.A SqlDbType other than Xml was used when Value was set to XmlReader.

Beim Ausführen des Befehls für eine gesperrte Zeile ist eine Ausnahme aufgetreten.An exception occurred while executing the command against a locked row. Diese Ausnahme tritt in Microsoft .NET Framework 1.0 nicht auf.This exception is not generated when you are using Microsoft .NET Framework version 1.0.

- oder --or-

Bei einem Streamingvorgang ist ein Timeout aufgetreten.A timeout occurred during a streaming operation. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support (SqlClient-Streamingunterstützung).For more information about streaming, see SqlClient Streaming Support.

Während eines Streamingvorgangs ist bei einem Stream-, XmlReader- oder TextReader-Objekt ein Fehler aufgetreten.An error occurred in a Stream, XmlReader or TextReader object during a streaming operation. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support (SqlClient-Streamingunterstützung).For more information about streaming, see SqlClient Streaming Support.

Die SqlConnection wurde während eines Streamingvorgangs geschlossen oder getrennt.The SqlConnection closed or dropped during a streaming operation. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support (SqlClient-Streamingunterstützung).For more information about streaming, see SqlClient Streaming Support.

Das Stream-, XmlReader- oder TextReader-Objekt wurde während eines Streamingvorgangs geschlossen.The Stream, XmlReader or TextReader object was closed during a streaming operation. Weitere Informationen zum Streaming finden Sie unter SqlClient Streaming Support (SqlClient-Streamingunterstützung).For more information about streaming, see SqlClient Streaming Support.

Beispiele

Im folgenden Beispiel wird ein erstellt SqlCommand und dann mit ausgeführt ExecuteNonQuery .The following example creates a SqlCommand and then executes it using ExecuteNonQuery. Im Beispiel wird eine Zeichenfolge, die eine Transact-SQL-Anweisung (z. b. Update, INSERT oder DELETE) ist, und eine Zeichenfolge, die zum Herstellen einer Verbindung mit der Datenquelle verwendet wird, an SieThe example is passed a string that is a Transact-SQL statement (such as UPDATE, INSERT, or DELETE) and a string to use to connect to the data source.

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 Katalog Operationen (z. b. Abfragen der Struktur einer Datenbank oder Erstellen von Datenbankobjekten, z. b. Tabellen) oder zum Ändern der Daten in einer Datenbank ohne eine DataSet durch Ausführen von Update-, INSERT-oder DELETE-Anweisungen verwenden.You can use the ExecuteNonQuery to perform catalog operations (for example, querying the structure of a database or creating database objects such as tables), or to change the data in a database without using a DataSet by executing UPDATE, INSERT, or DELETE statements.

Obwohl die ExecuteNonQuery keine Zeilen zurückgibt, werden alle Ausgabeparameter oder Rückgabewerte, die Parametern zugeordnet sind, mit Daten aufgefüllt.Although the ExecuteNonQuery returns no rows, any output parameters or return values mapped to parameters are populated with data.

Bei den Anweisungen UPDATE, INSERT und DELETE ist der Rückgabewert die Anzahl der vom Befehl betroffenen Zeilen.For UPDATE, INSERT, and DELETE statements, the return value is the number of rows affected by the command. Bei allen anderen Anweisungstypen ist der Rückgabewert -1.For all other types of statements, the return value is -1.

Wenn für eine Tabelle, die eingefügt oder aktualisiert wird, ein Trigger vorhanden ist, enthält der Rückgabewert die Anzahl der Zeilen, die vom INSERT-oder Update-Vorgang betroffen sind, sowie die Anzahl der Zeilen, auf die sich der Trigger oder Trigger auswirkt.When a trigger exists on a table being inserted or updated, the return value includes the number of rows affected by both the insert or update operation and the number of rows affected by the trigger or triggers.

Wenn SET NOCOUNT ON für die Verbindung festgelegt wird (vor oder als Teil der Ausführung des Befehls oder als Teil eines durch die Ausführung des Befehls initiierten Auslösers), werden die von den einzelnen Anweisungen betroffenen Zeilen nicht mehr zur Anzahl der betroffenen Zeilen beigetragen, die von dieser Methode zurückgegeben werden.When SET NOCOUNT ON is set on the connection (before or as part of executing the command, or as part of a trigger initiated by the execution of the command) the rows affected by individual statements stop contributing to the count of rows affected that is returned by this method.

Wenn keine Anweisungen erkannt werden, die zur Anzahl beitragen, ist der Rückgabewert-1.If no statements are detected that contribute to the count, the return value is -1. Wenn ein Rollback durchgeführt wird, ist auch der Rückgabewert-1.If a rollback occurs, the return value is also -1.

Gilt für: