SqlDataAdapter.InsertCommand Propiedad

Definición

Obtiene o establece un procedimiento almacenado o una instrucción de Transact-SQL para insertar nuevos registros en el origen de datos.

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 de propiedad

SqlCommand que se utiliza durante Update(DataSet) para insertar en la base de datos los registros correspondientes a las nuevas filas en DataSet.

Ejemplos

En el ejemplo siguiente se crea y SqlDataAdapter se establecen las SelectCommandpropiedades , InsertCommand, UpdateCommandy DeleteCommand . Se supone que ya ha creado un 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;
    }
}

Comentarios

Durante Update, si esta propiedad no está establecida y la información de la clave principal está presente en DataSet, InsertCommand se puede generar automáticamente si establece la SelectCommand propiedad y usa .SqlCommandBuilder A continuación, los comandos adicionales que no establezca se generan mediante .SqlCommandBuilder Esta lógica de generación requiere que la información de columna de clave esté presente en .DataSet Para obtener más información, vea Generar comandos con objetos CommandBuilder.

Cuando InsertCommand se asigna a un objeto creado SqlCommandanteriormente, SqlCommand no se clona. InsertCommand mantiene una referencia al objeto creado SqlCommand anteriormente.

Si la ejecución de este comando devuelve filas, estas filas se pueden agregar a según DataSet cómo establezca la propiedad UpdatedRowSource del SqlCommand objeto.

Para cada columna que se propaga al origen de datos en Update, se debe agregar un parámetro a InsertCommand, UpdateCommando DeleteCommand. La SourceColumn propiedad del parámetro debe establecerse en el nombre de la columna. Esto indica que el valor del parámetro no se establece manualmente, pero se toma de la columna concreta de la fila procesada actualmente.

Se aplica a