Aggiornamento di dati in un'origine dati
Si applica a: .NET Framework .NET .NET Standard
Le istruzioni SQL che modificano i dati, ad esempio INSERT, UPDATE o DELETE, non restituiscono righe. Analogamente, molte stored procedure eseguono un'operazione ma non restituiscono righe. Per eseguire comandi che non restituiscono righe, creare un oggetto Command con il comando SQL appropriato e un oggetto Connection con tutti i valori di Parameters necessari. Eseguire il comando con il metodo ExecuteNonQuery dell'oggetto SqlCommand.
Nota
Il metodo ExecuteNonQuery restituisce un valore intero che rappresenta il numero di righe interessate dall'istruzione o dalla stored procedure eseguita. Se si eseguono più istruzioni, il valore restituito sarà la somma dei record interessati da ognuna delle istruzioni eseguite.
Esempio
Nell'esempio di codice seguente viene eseguita un'istruzione INSERT per inserire un record in un database 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();
Nell'esempio di codice seguente viene eseguita la stored procedure creata dal codice di esempio in Esecuzione di operazioni nel catalogo. La stored procedure non restituisce righe, quindi viene usato il metodo ExecuteNonQuery, ma riceve un parametro di input e restituisce un parametro di output e un valore restituito.
// 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;