SqlDataAdapter.InsertCommand Eigenschap

Definitie

Hiermee wordt een Transact-SQL instructie of opgeslagen procedure opgehaald of ingesteld om nieuwe records in de gegevensbron in te voegen.

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; }
public System.Data.SqlClient.SqlCommand InsertCommand { get; set; }
[<System.Data.DataSysDescription("DbDataAdapter_InsertCommand")>]
member this.InsertCommand : System.Data.SqlClient.SqlCommand with get, set
member this.InsertCommand : System.Data.SqlClient.SqlCommand with get, set
Public Property InsertCommand As SqlCommand

Waarde van eigenschap

Een SqlCommand gebruikt tijdens Update(DataSet) het invoegen van records in de database die overeenkomen met nieuwe rijen in de DataSet.

Kenmerken

Voorbeelden

In het volgende voorbeeld worden de SqlDataAdapter , InsertCommanden UpdateCommandeigenschappen SelectCommandgemaakt en DeleteCommand ingesteld. Hierbij wordt ervan uitgegaan dat u al een SqlConnection object hebt gemaakt.

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

Opmerkingen

Als Updatedeze eigenschap niet is ingesteld en de primaire-sleutelgegevens aanwezig zijn in de DataSeteigenschap, kan deze InsertCommand automatisch worden gegenereerd als u de SelectCommand eigenschap instelt en de SqlCommandBuilder. Vervolgens worden eventuele extra opdrachten die u niet instelt, gegenereerd door de SqlCommandBuilder. Deze generatielogica vereist dat belangrijke kolomgegevens aanwezig zijn in de DataSet. Zie Opdrachten genereren met CommandBuilders voor meer informatie.

Wanneer InsertCommand deze is toegewezen aan een eerder gemaakte SqlCommand, wordt deze SqlCommand niet gekloond. Het InsertCommand onderhoudt een verwijzing naar het eerder gemaakte SqlCommand object.

Als de uitvoering van deze opdracht rijen retourneert, kunnen deze rijen worden toegevoegd aan de DataSet , afhankelijk van hoe u de eigenschap UpdatedRowSource van het SqlCommand object instelt.

Voor elke kolom die u doorgeeft aan de gegevensbron Update, moet een parameter worden toegevoegd aan InsertCommand, UpdateCommandof DeleteCommand. De SourceColumn eigenschap van de parameter moet worden ingesteld op de naam van de kolom. Hiermee wordt aangegeven dat de waarde van de parameter niet handmatig is ingesteld, maar afkomstig is van de specifieke kolom in de momenteel verwerkte rij.

Van toepassing op

Zie ook