Condividi tramite


SqlDataAdapter.UpdateCommand Proprietà

Definizione

Ottiene o imposta un'istruzione Transact-SQL o una stored procedure per aggiornare record nell'origine dati.

public:
 property Microsoft::Data::SqlClient::SqlCommand ^ UpdateCommand { Microsoft::Data::SqlClient::SqlCommand ^ get(); void set(Microsoft::Data::SqlClient::SqlCommand ^ value); };
public Microsoft.Data.SqlClient.SqlCommand UpdateCommand { get; set; }
member this.UpdateCommand : Microsoft.Data.SqlClient.SqlCommand with get, set
Public Property UpdateCommand As SqlCommand

Valore della proprietà

Oggetto SqlCommand utilizzato durante l'applicazione del metodo Update(DataSet) per aggiornare record nel database che corrispondono alle righe modificate nell'oggetto DataSet.

Esempio

Nell'esempio seguente viene creato un oggetto SqlDataAdapter e vengono impostate le SelectCommandproprietà , InsertCommandUpdateCommand e DeleteCommand . Presuppone che sia già stato creato un SqlConnection oggetto .

using Microsoft.Data.SqlClient;

class Program
{
    static void Main()
    {
    }
    public static SqlDataAdapter CreateCustomerAdapter(
        SqlConnection connection)
    {
        SqlDataAdapter adapter = new SqlDataAdapter();

        // Create the SelectCommand.
        SqlCommand command = new SqlCommand("SELECT * FROM Customers " +
            "WHERE Country = @Country AND City = @City", connection);

        // Add the parameters for the SelectCommand.
        command.Parameters.Add("@Country", SqlDbType.NVarChar, 15);
        command.Parameters.Add("@City", SqlDbType.NVarChar, 15);

        adapter.SelectCommand = command;

        // Create the InsertCommand.
        command = new SqlCommand(
            "INSERT INTO Customers (CustomerID, CompanyName) " +
            "VALUES (@CustomerID, @CompanyName)", connection);

        // Add the parameters for the InsertCommand.
        command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
        command.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName");

        adapter.InsertCommand = command;

        // Create the UpdateCommand.
        command = new SqlCommand(
            "UPDATE Customers SET CustomerID = @CustomerID, CompanyName = @CompanyName " +
            "WHERE CustomerID = @oldCustomerID", connection);

        // Add the parameters for the UpdateCommand.
        command.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
        command.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName");
        SqlParameter parameter = command.Parameters.Add(
            "@oldCustomerID", SqlDbType.NChar, 5, "CustomerID");
        parameter.SourceVersion = DataRowVersion.Original;

        adapter.UpdateCommand = command;

        // Create the DeleteCommand.
        command = new SqlCommand(
            "DELETE FROM Customers WHERE CustomerID = @CustomerID", connection);

        // Add the parameters for the DeleteCommand.
        parameter = command.Parameters.Add(
            "@CustomerID", SqlDbType.NChar, 5, "CustomerID");
        parameter.SourceVersion = DataRowVersion.Original;

        adapter.DeleteCommand = command;

        return adapter;
    }
}

Commenti

Durante Update, se questa proprietà non è impostata e le informazioni sulla chiave primaria sono presenti in DataSet, l'oggetto UpdateCommand può essere generato automaticamente se si imposta la SelectCommand proprietà e si usa .SqlCommandBuilder Eventuali comandi aggiuntivi non impostati vengono quindi generati da SqlCommandBuilder. Questa logica di generazione richiede che le informazioni sulla colonna chiave siano presenti in DataSet. Per altre informazioni, vedere Generazione dei comandi con CommandBuilders.

Quando UpdateCommand viene assegnato a un oggetto creato SqlCommandin precedenza, l'oggetto SqlCommand non viene clonato. Mantiene UpdateCommand un riferimento all'oggetto creato SqlCommand in precedenza.

Nota

Se l'esecuzione di questo comando restituisce righe, le righe aggiornate possono essere unite con a DataSet seconda della modalità di impostazione della proprietà UpdatedRowSource dell'oggetto SqlCommand .

Per ogni colonna propagata all'origine dati in Update, è necessario aggiungere un parametro a InsertCommand, UpdateCommando DeleteCommand.

La SourceColumn proprietà del parametro deve essere impostata sul nome della colonna. Ciò indica che il valore del parametro non è impostato manualmente, ma ricavato dalla colonna specifica nella riga attualmente elaborata.

Si applica a