Aggiornamento di dati in un'origine datiUpdating Data in a Data Source

Le istruzioni SQL che modificano i dati, ad esempio INSERT, UPDATE o DELETE, non restituiscono righe.SQL statements that modify data (such as INSERT, UPDATE, or DELETE) do not return rows. Analogamente, molte stored procedure eseguono un'operazione ma non restituiscono righe.Similarly, many stored procedures perform an action but do not return rows. Per eseguire i comandi che non restituiscono righe, creare un comando oggetto con il comando SQL appropriato e un connessione, incluse le necessarie parametri.To execute commands that do not return rows, create a Command object with the appropriate SQL command and a Connection, including any required Parameters. Eseguire il comando con il ExecuteNonQuery metodo il comando oggetto.Execute the command with the ExecuteNonQuery method of the Command object.

Il ExecuteNonQuery metodo restituisce un intero che rappresenta il numero di righe interessate dall'istruzione o stored procedure che è stata eseguita.The ExecuteNonQuery method returns an integer that represents the number of rows affected by the statement or stored procedure that was executed. Se si eseguono più istruzioni, il valore restituito sarà la somma dei record interessati da ognuna delle istruzioni eseguite.If multiple statements are executed, the value returned is the sum of the records affected by all of the statements executed.

EsempioExample

L'esempio di codice seguente viene eseguita un'istruzione INSERT per inserire un record in un database utilizzando ExecuteNonQuery.The following code example executes an INSERT statement to insert a record into a database using ExecuteNonQuery.

' Assumes connection is a valid SqlConnection.  
connection.Open()  

Dim queryString As String = "INSERT INTO Customers " & _  
  "(CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')"  

Dim command As SqlCommand = New SqlCommand(queryString, connection)  
Dim recordsAffected As Int32 = command.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();  

L'esempio di codice seguente viene eseguita la stored procedure creata dal codice di esempio in esecuzione delle operazioni di catalogo.The following code example executes the stored procedure created by the sample code in Performing Catalog Operations. Non viene restituita dalla stored procedure, pertanto la ExecuteNonQuery viene usato il metodo, ma la stored procedure riceve un parametro di input e restituisce un parametro di output e un valore restituito.No rows are returned by the stored procedure, so the ExecuteNonQuery method is used, but the stored procedure does receive an input parameter and returns an output parameter and a return value.

Per il OleDbCommand oggetto, il ReturnValue parametro deve essere aggiunto al parametri raccolta prima.For the OleDbCommand object, the ReturnValue parameter must be added to the Parameters collection first.

' Assumes connection is a valid SqlConnection.  
Dim command As SqlCommand = _  
   New SqlCommand("InsertCategory" , connection)  
command.CommandType = CommandType.StoredProcedure  

Dim parameter As SqlParameter = _  
 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()  

Dim categoryID As Int32 = CInt(command.Parameters("@Identity").Value)  
Dim rowCount As Int32 = CInt(command.Parameters("@RowCount").Value)   
// Assumes connection is a valid SqlConnection.  
SqlCommand command = new SqlCommand("InsertCategory" , connection);  
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;  

Vedere ancheSee Also

Uso di comandi per modificare i datiUsing Commands to Modify Data
Aggiornamento di origini dati con DataAdapterUpdating Data Sources with DataAdapters
Comandi e parametriCommands and Parameters
Provider gestiti ADO.NET e Centro per sviluppatori di set di datiADO.NET Managed Providers and DataSet Developer Center