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

Definição

Executa uma instrução Transact-SQL na conexão e retorna o número de linhas afetadas.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

Retornos

O número de linhas afetadas.The number of rows affected.

Implementações

Exceções

Um SqlDbType diferente de Binary ou VarBinary foi usado quando Value foi definido como Stream.A SqlDbType other than Binary or VarBinary was used when Value was set to Stream. Para saber mais sobre o streaming, consulte SqlClient Streaming Support (Suporte de streaming do SqlClient).For more information about streaming, see SqlClient Streaming Support.

- ou --or-

Um SqlDbType diferente de Char, NChar, NVarChar, VarChar ou Xml foi usado quando Value foi definido como TextReader.A SqlDbType other than Char, NChar, NVarChar, VarChar, or Xml was used when Value was set to TextReader.

- ou --or-

Um SqlDbType diferente de Xml foi usado quando Value foi definido como XmlReader.A SqlDbType other than Xml was used when Value was set to XmlReader.

Exceção ao executar o comando em uma linha bloqueada.An exception occurred while executing the command against a locked row. Essa exceção não é gerada quando o Microsoft .NET Framework versão 1.0 é utilizado.This exception is not generated when you are using Microsoft .NET Framework version 1.0.

- ou --or-

Ocorreu um tempo limite durante uma operação de streaming.A timeout occurred during a streaming operation. Para saber mais sobre o streaming, consulte SqlClient Streaming Support (Suporte de streaming do SqlClient).For more information about streaming, see SqlClient Streaming Support.

Ocorreu um erro em um objeto Stream, XmlReader ou TextReader durante uma operação de streaming.An error occurred in a Stream, XmlReader or TextReader object during a streaming operation. Para saber mais sobre o streaming, consulte SqlClient Streaming Support (Suporte de streaming do SqlClient).For more information about streaming, see SqlClient Streaming Support.

O SqlConnection foi fechado ou removido durante uma operação de streaming.The SqlConnection closed or dropped during a streaming operation. Para saber mais sobre o streaming, consulte SqlClient Streaming Support (Suporte de streaming do SqlClient).For more information about streaming, see SqlClient Streaming Support.

O objeto Stream, XmlReader ou TextReader foi fechado durante uma operação de streaming.The Stream, XmlReader or TextReader object was closed during a streaming operation. Para saber mais sobre o streaming, consulte SqlClient Streaming Support (Suporte de streaming do SqlClient).For more information about streaming, see SqlClient Streaming Support.

Exemplos

O exemplo a seguir cria SqlCommand um e, em seguida, ExecuteNonQueryexecuta-o usando.The following example creates a SqlCommand and then executes it using ExecuteNonQuery. O exemplo é passado uma cadeia de caracteres que é uma instrução Transact-SQL (como UPDATE, INSERT ou DELETE) e uma cadeia de caracteres a ser usada para se conectar à fonte de dados.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

Comentários

Você pode usar o ExecuteNonQuery para executar operações de catálogo (por exemplo, consultar a estrutura de um banco de dados ou criar objetos de banco de dados, como tabelas), ou para alterar o estado de DataSet um banco de dado sem usar um executando update, INSERT ou Delete instruções.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.

Embora o ExecuteNonQuery não retorne nenhuma linha, quaisquer parâmetros de saída ou valores de retorno mapeados para parâmetros são preenchidos com dados.Although the ExecuteNonQuery returns no rows, any output parameters or return values mapped to parameters are populated with data.

Para instruções UPDATE, INSERT e DELETE, o valor retornado é o número de linhas afetadas pelo comando.For UPDATE, INSERT, and DELETE statements, the return value is the number of rows affected by the command. Para todos os outros tipos de instruções, o valor retornado é -1.For all other types of statements, the return value is -1.

Quando existe um gatilho em uma tabela que está sendo inserida ou atualizada, o valor de retorno inclui o número de linhas afetadas pela operação de inserção ou atualização e o número de linhas afetadas pelo gatilho ou gatilhos.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.

Quando SET NOCOUNT ON é definido na conexão (antes ou como parte da execução do comando, ou como parte de um gatilho iniciado pela execução do comando), as linhas afetadas por instruções individuais param de contribuir para a contagem de linhas afetadas que são retornadas por este m método.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.

Se nenhuma instrução for detectada para contribuir com a contagem, o valor de retorno será-1.If no statements are detected that contribute to the count, the return value is -1. Se ocorrer uma reversão, o valor de retorno também será-1.If a rollback occurs, the return value is also -1.

Aplica-se a

Veja também