SqlCommand.ExecuteNonQuery SqlCommand.ExecuteNonQuery SqlCommand.ExecuteNonQuery SqlCommand.ExecuteNonQuery Method

Определение

Выполняет для подключения инструкцию Transact-SQL и возвращает количество задействованных в инструкции строк.Executes a Transact-SQL statement against the connection and returns the number of rows affected.

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

Возвраты

Число обработанных строк.The number of rows affected.

Реализации

Исключения

При присвоении Value значения Stream использовался тип SqlDbType, отличный от Binary или VarBinary.A SqlDbType other than Binary or VarBinary was used when Value was set to Stream. Дополнительные сведения о потоковой передаче см. в разделе Поддержка потоковой передачи SqlClient.For more information about streaming, see SqlClient Streaming Support.

- или --or-

При присвоении Value значения TextReader использовался тип SqlDbType, отличный от Char, NChar, NVarChar, VarChar или Xml.A SqlDbType other than Char, NChar, NVarChar, VarChar, or Xml was used when Value was set to TextReader.

- или --or-

При присвоении Value значения XmlReader использовался тип SqlDbType, отличный от Xml.A SqlDbType other than Xml was used when Value was set to XmlReader.

Возникло исключение при выполнении команды в заблокированной строке.An exception occurred while executing the command against a locked row. Это исключение не создается при использовании платформы Microsoft .NET Framework версии 1.0.This exception is not generated when you are using Microsoft .NET Framework version 1.0.

- или --or-

Во время операции потоковой передачи истекло время ожидания.A timeout occurred during a streaming operation. Дополнительные сведения о потоковой передаче см. в разделе Поддержка потоковой передачи SqlClient.For more information about streaming, see SqlClient Streaming Support.

Во время операции потоковой передачи возникла ошибка в объекте Stream, XmlReader или TextReader.An error occurred in a Stream, XmlReader or TextReader object during a streaming operation. Дополнительные сведения о потоковой передаче см. в разделе Поддержка потоковой передачи SqlClient.For more information about streaming, see SqlClient Streaming Support.

Подключение SqlConnection, закрытое или удаленное во время операции потоковой передачи.The SqlConnection closed or dropped during a streaming operation. Дополнительные сведения о потоковой передаче см. в разделе Поддержка потоковой передачи SqlClient.For more information about streaming, see SqlClient Streaming Support.

Объект Stream, XmlReader или TextReader был закрыт во время операции потоковой передачи.The Stream, XmlReader or TextReader object was closed during a streaming operation. Дополнительные сведения о потоковой передаче см. в разделе Поддержка потоковой передачи SqlClient.For more information about streaming, see SqlClient Streaming Support.

Примеры

В следующем примере создается SqlCommand и выполняется с помощью. ExecuteNonQueryThe following example creates a SqlCommand and then executes it using ExecuteNonQuery. В примере передается строка, которая является инструкцией Transact-SQL (например, UPDATE, INSERT или DELETE), и строка, используемая для подключения к источнику данных.The 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

Комментарии

Можно использовать ExecuteNonQuery для выполнения операций с каталогом (например, для запроса структуры базы данных или создания объектов базы данных, таких как таблицы) или для изменения данных в базе данных без DataSet использования команды Update, INSERT или DELETE. инструкции.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.

Несмотря на ExecuteNonQuery то, что не возвращает ни одной строки, все выходные параметры или возвращаемые значения, сопоставленные с параметрами, заполняются данными.Although the ExecuteNonQuery returns no rows, any output parameters or return values mapped to parameters are populated with data.

Операторы UPDATE, INSERT и DELETE возвращают количество строк, которые были обработаны с их помощью.For UPDATE, INSERT, and DELETE statements, the return value is the number of rows affected by the command. Для всех прочих типов операторов возвращаемым значением является -1.For all other types of statements, the return value is -1.

Если для вставляемой или обновляемой таблицы существует триггер, возвращаемое значение включает число строк, затронутых операциями вставки или обновления, а также количество строк, затронутых триггером или триггерами.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.

Если SET NOCOUNT ON установлен в соединении (до или в ходе выполнения команды или в рамках триггера, инициированного выполнением команды), строки, затронутые отдельными инструкциями, прекращают подвергаться числу затронутых строк, возвращаемых этим m мя метода.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.

Если инструкции, которые вносят вклад в число, не обнаружены, возвращается значение-1.If no statements are detected that contribute to the count, the return value is -1. Если происходит откат, возвращаемое значение также равно-1.If a rollback occurs, the return value is also -1.

Применяется к

Дополнительно