Partilhar via


Atualização de dados numa fonte de dados

Aplica-se a: .NET Framework .NET .NET Standard

Baixar ADO.NET

As instruções SQL que modificam dados (como INSERT, UPDATE ou DELETE) não retornam linhas. Da mesma forma, muitos procedimentos armazenados executam uma ação, mas não retornam linhas. Para executar comandos que não retornam linhas, crie um objeto Command com o comando SQL apropriado e uma Connection, incluindo quaisquer parâmetros necessários. Execute o comando com o ExecuteNonQuery método do SqlCommand objeto.

Observação

O método ExecuteNonQuery devolve um inteiro que representa o número de linhas afetadas pela instrução ou procedimento armazenado que foi executado. Se várias instruções forem executadas, o valor retornado será a soma dos registros afetados por todas as instruções executadas.

Example

O exemplo de código a seguir executa uma instrução INSERT para inserir um registro em um banco de dados usando ExecuteNonQuery.

// Assumes connection is a valid SqlConnection.
connection.Open();

string queryString = "INSERT INTO Customers " +
"(CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')";

SqlCommand command = new SqlCommand(queryString, connection);
Int32 recordsAffected = command.ExecuteNonQuery();

O exemplo de código a seguir executa o procedimento armazenado criado pelo código de exemplo em Executando operações de catálogo. Nenhuma linha é devolvida pelo procedimento armazenado, pelo que o método ExecuteNonQuery é utilizado, mas o procedimento armazenado recebe um parâmetro de entrada e devolve um parâmetro de saída e um valor de retorno.

// Assumes command is a valid SqlCommand with an open connection.
command.CommandText = "InsertCategory";
command.CommandType = CommandType.StoredProcedure;

SqlParameter parameter = command.Parameters.Add("@RowCount", SqlDbType.Int);
parameter.Direction = ParameterDirection.ReturnValue;

parameter = command.Parameters.Add("@CategoryName", SqlDbType.NChar, 15);

parameter = command.Parameters.Add("@Identity", SqlDbType.Int);
parameter.Direction = ParameterDirection.Output;

command.Parameters["@CategoryName"].Value = "New Category";
command.ExecuteNonQuery();

Int32 categoryID = (Int32) command.Parameters["@Identity"].Value;
Int32 rowCount = (Int32) command.Parameters["@RowCount"].Value;

Consulte também