SqlDataAdapter.InsertCommand Eigenschaft

Definition

Ruft eine Transact-SQL-Anweisung oder gespeicherte Prozedur ab, um neue Datensätze in die Datenquelle einzufügen, oder legt diese fest.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

Eigenschaftswert

Ein SqlCommand, mit dem während der Ausführung von Update(DataSet) Datensätze in die Datenbank eingefügt werden, die neuen Zeilen im DataSet entsprechen.A SqlCommand used during Update(DataSet) to insert records into the database that correspond to new rows in the DataSet.

Attribute

Beispiele

Im folgenden Beispiel wird eine SqlDataAdapter erstellt und die Eigenschaften SelectCommand, InsertCommand, UpdateCommandund DeleteCommand festgelegt.The following example creates a SqlDataAdapter and sets the SelectCommand, InsertCommand, UpdateCommand, and DeleteCommand properties. Es wird davon ausgegangen, dass Sie bereits ein SqlConnection Objekt erstellt haben.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

Hinweise

Wenn diese Eigenschaft während Updatenicht festgelegt ist und Primärschlüssel Informationen in der DataSetvorhanden sind, kann die InsertCommand automatisch generiert werden, wenn Sie die SelectCommand-Eigenschaft festlegen und die SqlCommandBuilderverwenden.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. Anschließend werden alle zusätzlichen Befehle, die Sie nicht festlegen, vom SqlCommandBuildergeneriert.Then, any additional commands that you do not set are generated by the SqlCommandBuilder. Diese Generierungs Logik erfordert, dass Schlüssel Spalten Informationen im DataSetvorhanden sind.This generation logic requires key column information to be present in the DataSet. Weitere Informationen finden Sie unter Erstellen von Befehlen mit CommandBuilder.For more information, see Generating Commands with CommandBuilders.

Wenn InsertCommand einem zuvor erstellten SqlCommandzugewiesen ist, wird der SqlCommand nicht geklont.When InsertCommand is assigned to a previously created SqlCommand, the SqlCommand is not cloned. Der InsertCommand verwaltet einen Verweis auf das zuvor erstellte SqlCommand-Objekt.The InsertCommand maintains a reference to the previously created SqlCommand object.

Wenn die Ausführung dieses Befehlszeilen zurückgibt, können diese Zeilen der DataSet hinzugefügt werden, je nachdem, wie Sie die UpdatedRowSource -Eigenschaft des SqlCommand Objekts festgelegt haben.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.

Für jede Spalte, die Sie auf Updatean die Datenquelle weitergeben, sollte InsertCommand, UpdateCommandoder DeleteCommandein Parameter hinzugefügt werden.For every column that you propagate to the data source on Update, a parameter should be added to InsertCommand, UpdateCommand, or DeleteCommand. Die SourceColumn-Eigenschaft des-Parameters sollte auf den Namen der Spalte festgelegt werden.The SourceColumn property of the parameter should be set to the name of the column. Dies gibt an, dass der Wert des-Parameters nicht manuell festgelegt wird, sondern aus der jeweiligen Spalte in der aktuell verarbeiteten Zeile entnommen wird.This indicates that the value of the parameter is not set manually, but is taken from the particular column in the currently processed row.

Gilt für:

Siehe auch