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"Двоичный" или "VarBinary", используется Value значение "ДвоичныйStream" или "VarBinary". Дополнительные сведения о потоковой передаче см. в разделе "Поддержка потоковой передачи SqlClient".

–или–

Если SqlDbType задано значение "Char", "NChar", "NVarChar", Value" или TextReader"

–или–

Значение SqlDbType , отличное от xml , использовалось при Value установке XmlReader.

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

–или–

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

Ошибка произошла в объекте StreamXmlReader или 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.

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

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