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.

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

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.

Attribute

Beispiele

Im folgenden Beispiel wird ein SqlDataAdapter erstellt und die SelectCommandEigenschaften , InsertCommand, UpdateCommandund DeleteCommand festgelegt. Es wird davon ausgegangen, dass Sie bereits ein SqlConnection -Objekt erstellt haben.

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 UpdateEigenschaft nicht festgelegt ist und Primärschlüsselinformationen im DataSetvorhanden sind, kann automatisch InsertCommand generiert werden, wenn Sie die SelectCommand -Eigenschaft festlegen und verwenden SqlCommandBuilder. Anschließend werden alle zusätzlichen Befehle, die Sie nicht festlegen, vom SqlCommandBuildergeneriert. Diese Generierungslogik erfordert, dass wichtige Spalteninformationen im DataSetvorhanden sind. Weitere Informationen finden Sie unter Generieren von Befehlen mit CommandBuilder-Objekten.

Wenn InsertCommand einem zuvor erstellten SqlCommandzugewiesen wird, wird der SqlCommand nicht geklont. Der InsertCommand verwaltet einen Verweis auf das zuvor erstellte SqlCommand -Objekt.

Wenn die Ausführung dieses Befehls Zeilen zurückgibt, können diese Zeilen dem DataSet hinzugefügt werden, je nachdem, wie Sie die UpdatedRowSource-Eigenschaft des SqlCommand Objekts festlegen.

Für jede Spalte, die Sie an die Datenquelle auf Updateweitergeben, sollte ein Parameter zu InsertCommand, UpdateCommandoder DeleteCommandhinzugefügt werden. Die SourceColumn -Eigenschaft des Parameters sollte auf den Namen der Spalte festgelegt werden. Dies gibt an, dass der Wert des Parameters nicht manuell festgelegt wird, sondern aus der bestimmten Spalte in der aktuell verarbeiteten Zeile stammt.

Gilt für:

Weitere Informationen