Поделиться через


SqlCommand.ExecuteNonQuery Метод

Определение

Выполняет для подключения инструкцию Transact-SQL и возвращает количество задействованных в инструкции строк.

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

Возвращаемое значение

Число обработанных строк.

Реализации

Исключения

Объект , отличный SqlDbType от Binary или VarBinary , использовался, если Value для параметра задано значение Stream. Дополнительные сведения о потоковой передаче см. в разделе Поддержка потоковой передачи SqlClient.

-или-

Значение , отличное SqlDbType от Char, NChar, NVarChar, VarChar или Xml , использовалось, если Value для параметра задано значение TextReader.

-или-

Объект , отличный SqlDbType от XML , использовался, если Value для параметра задано значение XmlReader.

Возникло исключение при выполнении команды в заблокированной строке. Это исключение не создается при использовании платформы Microsoft .NET Framework версии 1.0.

-или-

Во время операции потоковой передачи истекло время ожидания. Дополнительные сведения о потоковой передаче см. в разделе Поддержка потоковой передачи SqlClient.

Во время операции потоковой передачи возникла ошибка в объекте Stream, XmlReader или TextReader. Дополнительные сведения о потоковой передаче см. в разделе Поддержка потоковой передачи SqlClient.

Подключение SqlConnection, закрытое или удаленное во время операции потоковой передачи. Дополнительные сведения о потоковой передаче см. в разделе Поддержка потоковой передачи SqlClient.

Объект Stream, XmlReader или TextReader был закрыт во время операции потоковой передачи. Дополнительные сведения о потоковой передаче см. в разделе Поддержка потоковой передачи SqlClient.

Примеры

В следующем примере создается SqlCommand , а затем выполняется с помощью ExecuteNonQuery. В этом примере передается строка, которая является инструкцией Transact-SQL (например, UPDATE, INSERT или DELETE), и строка, используемая для подключения к источнику данных.

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.

Хотя не ExecuteNonQuery возвращает строк, все выходные параметры или возвращаемые значения, сопоставленные с параметрами, заполняются данными.

Операторы UPDATE, INSERT и DELETE возвращают количество строк, которые были обработаны с их помощью. Для всех прочих типов операторов возвращаемым значением является -1.

Если триггер существует в вставляемой или обновляемой таблице, возвращаемое значение включает количество строк, затронутых операцией вставки или обновления, и количество строк, затронутых триггером или триггерами.

Если параметр SET NOCOUNT ON установлен для подключения (до или в рамках выполнения команды или в составе триггера, инициированного выполнением команды), строки, на которые влияют отдельные инструкции, перестают влиять на количество затронутых строк, возвращаемых этим методом.

Если операторы, влияющие на подсчет, не обнаружены, возвращаемое значение равно -1. Если происходит откат, возвращаемое значение также равно -1.

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

См. также раздел