SqlDataAdapter.InsertCommand SqlDataAdapter.InsertCommand SqlDataAdapter.InsertCommand SqlDataAdapter.InsertCommand Property

定義

データ ソースに新しいレコードを挿入するための 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); };
[System.Data.DataSysDescription("DbDataAdapter_InsertCommand")]
public System.Data.SqlClient.SqlCommand InsertCommand { get; set; }
member this.InsertCommand : System.Data.SqlClient.SqlCommand with get, set
Public Property InsertCommand As SqlCommand

プロパティ値

SqlCommand 処理中に、Update(DataSet) 内の新しい行に対応するレコードをデータベースに挿入するための DataSetA SqlCommand used during Update(DataSet) to insert records into the database that correspond to new rows in the DataSet.

次の例ではSqlDataAdapter 、を作成SelectCommandし、 UpdateCommand、、 DeleteCommand 、およびInsertCommandの各プロパティを設定します。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

注釈

InsertCommand DataSet SqlCommandBuilder SelectCommandでは、このプロパティが設定されておらず、に主キー情報が含まれている場合、プロパティを設定してを使用すると、が自動的に生成されます。 UpdateDuring 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. 詳細については、「 CommandBuilders を使用したコマンドの生成」を参照してください。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オブジェクトのUpdatedRowSourceプロパティの設定方法に応じて、これらの行をに追加できます。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データソースに反映されるすべての列について、、 UpdateCommand、またはInsertCommand 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.

適用対象

こちらもご覧ください