SqlCommand.ExecuteNonQuery Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Executa uma instrução Transact-SQL contra a ligação e devolve o número de linhas afetadas.
public:
virtual int ExecuteNonQuery();
public:
override int ExecuteNonQuery();
public int ExecuteNonQuery();
public override int ExecuteNonQuery();
abstract member ExecuteNonQuery : unit -> int
override this.ExecuteNonQuery : unit -> int
override this.ExecuteNonQuery : unit -> int
Public Function ExecuteNonQuery () As Integer
Public Overrides Function ExecuteNonQuery () As Integer
Devoluções
O número de linhas afetadas.
Implementações
Exceções
Um SqlDbType diferente de Binary ou VarBinary era usado quando Value estava definido para Stream. Para mais informações sobre streaming, consulte SqlClient Streaming Support.
-ou-
Um SqlDbType diferente de Char, NChar, NVarChar, VarChar ou XML era usado quando Value estava definido para TextReader.
-ou-
Um SqlDbType outro que não XML era usado quando Value estava definido para XmlReader.
Ocorreu uma exceção ao executar o comando contra uma linha bloqueada. Esta exceção não é gerada quando está a usar Microsoft .NET Framework versão 1.0.
-ou-
Ocorreu um tempo durante uma operação de streaming. Para mais informações sobre streaming, consulte SqlClient Streaming Support.
Ocorreu um erro num Stream, XmlReader ou TextReader objeto durante uma operação de streaming. Para mais informações sobre streaming, consulte SqlClient Streaming Support.
Fecharam SqlConnection ou caíram durante uma operação de streaming. Para mais informações sobre streaming, consulte SqlClient Streaming Support.
O Stream, XmlReader ou TextReader objeto era fechado durante uma operação de streaming. Para mais informações sobre streaming, consulte SqlClient Streaming Support.
Exemplos
O exemplo seguinte cria um SqlCommand e depois executa-o usando ExecuteNonQuery. O exemplo recebe uma string que é uma instrução Transact-SQL (como UPDATE, INSERT ou DELETE) e uma string para usar para se ligar à 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
Observações
Pode usar o ExecuteNonQuery para realizar operações de catálogo (por exemplo, consultar a estrutura de uma base de dados ou criar objetos de base de dados como tabelas), ou para alterar os dados numa base de dados sem usar um DataSet ao executar instruções UPDATE, INSERT ou DELETE.
Embora não ExecuteNonQuery retorne linhas, quaisquer parâmetros de saída ou valores de retorno mapeados para parâmetros são preenchidos com dados.
Para as instruções UPDATE, INSERT e DELETE, o valor de retorno é o número de linhas afetadas pelo comando. Para todos os outros tipos de sentenças, o valor de retorno é -1.
Quando existe um trigger numa tabela a ser inserida ou atualizada, o valor de retorno inclui o número de linhas afetadas tanto pela operação de inserção ou atualização como pelo número de linhas afetadas pelo trigger ou triggers.
Quando SET NOCOUNT ON é definido na ligaçã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 deixam de contribuir para a contagem de linhas afetadas que é devolvida por este método.
Se não forem detetadas instruções que contribuam para a contagem, o valor de retorno é -1. Se ocorrer um rollback, o valor de retorno também é -1.