SqlDataAdapter.InsertCommand Свойство

Определение

Возвращает или задает инструкцию Transact-SQL или хранимую процедуру, используемую для вставки новых записей в источник данных.Gets or sets a Transact-SQL statement or stored procedure to insert new records into the data source.

public:
 property System::Data::SqlClient::SqlCommand ^ InsertCommand { System::Data::SqlClient::SqlCommand ^ get(); void set(System::Data::SqlClient::SqlCommand ^ value); };
public System.Data.SqlClient.SqlCommand InsertCommand { get; set; }
[System.Data.DataSysDescription("DbDataAdapter_InsertCommand")]
public System.Data.SqlClient.SqlCommand InsertCommand { get; set; }
member this.InsertCommand : System.Data.SqlClient.SqlCommand with get, set
[<System.Data.DataSysDescription("DbDataAdapter_InsertCommand")>]
member this.InsertCommand : System.Data.SqlClient.SqlCommand with get, set
Public Property InsertCommand As SqlCommand

Значение свойства

SqlCommand

SqlCommand используется в процессе Update(DataSet) для вставки записей, соответствующих новым строкам в DataSet, в базу данных.A SqlCommand used during Update(DataSet) to insert records into the database that correspond to new rows in the DataSet.

Атрибуты

Примеры

В следующем примере создается SqlDataAdapter и задаются SelectCommand InsertCommand свойства,, UpdateCommand и DeleteCommand .The following example creates a SqlDataAdapter and sets the SelectCommand, InsertCommand, UpdateCommand, and DeleteCommand properties. Предполагается, что объект уже создан SqlConnection .It assumes you have already created a SqlConnection object.

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;
}
Public Function CreateCustomerAdapter( _
  ByVal connection As SqlConnection) As SqlDataAdapter

    Dim adapter As SqlDataAdapter = New SqlDataAdapter()

    ' Create the SelectCommand.
    Dim command As SqlCommand = 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")
    Dim parameter As SqlParameter = 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.
    command.Parameters.Add( _
        "@CustomerID", SqlDbType.NChar, 5, "CustomerID")
    parameter.SourceVersion = DataRowVersion.Original

    adapter.DeleteCommand = command

    Return adapter
End Function

Комментарии

В случае Update , если это свойство не задано и сведения о первичном ключе имеются в DataSet , то InsertCommand может быть создан автоматически, если задать SelectCommand свойство и использовать SqlCommandBuilder .During Update, if this property is not set and primary key information is present in the DataSet, the InsertCommand can be generated automatically if you set the SelectCommand property and use the SqlCommandBuilder. Затем все дополнительные команды, которые не были заданы, создаются SqlCommandBuilder .Then, any additional commands that you do not set are generated by the SqlCommandBuilder. Эта логика создания требует, чтобы сведения о ключевом столбце присутствовали в DataSet .This generation logic requires key column information to be present in the DataSet. Дополнительные сведения см. в разделе Создание команд с помощью коммандбуилдерс.For more information, see Generating Commands with CommandBuilders.

Когда InsertCommand назначается ранее созданному SqlCommand , объект SqlCommand не клонируется.When InsertCommand is assigned to a previously created SqlCommand, the SqlCommand is not cloned. Объект InsertCommand поддерживает ссылку на ранее созданный SqlCommand объект.The InsertCommand maintains a reference to the previously created SqlCommand object.

Если выполнение этой команды возвращает строки, эти строки можно добавить в в DataSet зависимости от того, как задано свойство упдатедровсаурце SqlCommand объекта.If execution of this command returns rows, these rows can be added to the DataSet depending on how you set the UpdatedRowSource property of the SqlCommand object.

Для каждого столбца, который распространяется на источник данных в Update , параметр должен быть добавлен в InsertCommand , UpdateCommand или DeleteCommand .For every column that you propagate to the data source on Update, a parameter should be added to InsertCommand, UpdateCommand, or DeleteCommand. SourceColumnСвойству параметра должно быть присвоено имя столбца.The SourceColumn property of the parameter should be set to the name of the column. Это означает, что значение параметра не задано вручную, но берется из конкретного столбца в обрабатываемой в настоящий момент строке.This indicates that the value of the parameter is not set manually, but is taken from the particular column in the currently processed row.

Применяется к

См. также раздел