Condividi tramite


SqlDataAdapter.InsertCommand Proprietà

Definizione

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

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

Valore della proprietà

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

Esempio

Nell'esempio seguente viene creato un oggetto SqlDataAdapter e vengono impostate le SelectCommandproprietà , InsertCommand, UpdateCommande 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 InsertCommand 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 InsertCommand viene assegnato a un oggetto creato SqlCommandin precedenza, l'oggetto SqlCommand non viene clonato. Mantiene InsertCommand un riferimento all'oggetto creato SqlCommand in precedenza.

Se l'esecuzione di questo comando restituisce righe, queste righe possono essere aggiunte a DataSet a 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 viene ricavato dalla colonna specifica nella riga attualmente elaborata.

Si applica a