SqlCommand.ExecuteNonQuery Método

Definição

Executa uma instrução Transact-SQL na conexão e retorna o número de linhas afetadas.

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

Retornos

O número de linhas afetadas.

Implementações

Exceções

Um SqlDbType diferente de Binary ou VarBinary foi usado quando Value foi definido Streamcomo . Para saber mais sobre o streaming, consulte SqlClient Streaming Support (Suporte de streaming do SqlClient).

- ou -

Um SqlDbType diferente de Char, NChar, NVarChar, VarChar ou Xml foi usado quando foi definido TextReadercomo Value .

- ou -

Um SqlDbType diferente de Xml foi usado quando Value foi definido como XmlReader.

Exceção ao executar o comando em uma linha bloqueada. Essa exceção não é gerada quando o Microsoft .NET Framework versão 1.0 é utilizado.

- ou -

Ocorreu um tempo limite durante uma operação de streaming. Para saber mais sobre o streaming, consulte SqlClient Streaming Support (Suporte de streaming do SqlClient).

Ocorreu um erro em um objeto Stream, XmlReader ou TextReader durante uma operação de streaming. Para saber mais sobre o streaming, consulte SqlClient Streaming Support (Suporte de streaming do SqlClient).

O SqlConnection foi fechado ou removido durante uma operação de streaming. Para saber mais sobre o streaming, consulte SqlClient Streaming Support (Suporte de streaming do SqlClient).

O objeto Stream, XmlReader ou TextReader foi fechado durante uma operação de streaming. Para saber mais sobre o streaming, consulte SqlClient Streaming Support (Suporte de streaming do SqlClient).

Exemplos

O exemplo a seguir cria um SqlCommand e o executa usando 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.

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, consultando a estrutura de um banco de dados ou criando objetos de banco de dados, como tabelas), ou para alterar os dados em um banco de dados sem usar um DataSet executando instruções UPDATE, INSERT ou DELETE.

Embora o ExecuteNonQuery não retorne linhas, quaisquer parâmetros de saída ou valores retornados mapeados para parâmetros são preenchidos com dados.

Para instruções UPDATE, INSERT e DELETE, o valor retornado é o número de linhas afetadas pelo comando. Para todos os outros tipos de instruções, o valor retornado é -1.

Quando um gatilho existe em uma tabela que está sendo inserida ou atualizada, o valor retornado 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.

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 retornadas por esse método.

Se nenhuma instrução for detectada que contribua para a contagem, o valor retornado será -1. Se ocorrer uma reversão, o valor retornado também será -1.

Aplica-se a

Confira também