Partilhar via


SqlDataAdapter.InsertCommand Propriedade

Definição

Obtém ou define uma instrução Transact-SQL ou um procedimento armazenado para inserir novos registros na fonte de dados.

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

Valor da propriedade

Um SqlCommand usado durante o Update(DataSet) para inserir registros no banco de dados que correspondem às novas linhas no DataSet.

Exemplos

O exemplo a seguir cria um SqlDataAdapter e define as SelectCommandpropriedades , InsertCommand, UpdateCommande DeleteCommand . Ele pressupõe que você já tenha criado um SqlConnection objeto .

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;
    }
}

Comentários

Durante Update, se essa propriedade não estiver definida e as informações de chave primária estiverem presentes no DataSet, o InsertCommand poderá ser gerado automaticamente se você definir a SelectCommand propriedade e usar o SqlCommandBuilder. Em seguida, todos os comandos adicionais que você não definir são gerados pelo SqlCommandBuilder. Esta lógica de geração requer que as informações da coluna principal estejam presente no DataSet. Para obter mais informações, confira Gerar comandos com CommandBuilders.

Quando InsertCommand é atribuído a um criado SqlCommandanteriormente, o SqlCommand não é clonado. O InsertCommand mantém uma referência ao objeto criado SqlCommand anteriormente.

Se a execução desse comando retornar linhas, essas linhas poderão ser adicionadas ao DataSet dependendo de como você definir a propriedade UpdatedRowSource do SqlCommand objeto .

Para cada coluna propagada para a fonte de dados em Update, um parâmetro deve ser adicionado a InsertCommand, UpdateCommandou DeleteCommand. A SourceColumn propriedade do parâmetro deve ser definida como o nome da coluna. Isso indica que o valor do parâmetro não é definido manualmente, mas é obtido da coluna específica na linha processada no momento.

Aplica-se a