Udostępnij za pośrednictwem


SqlDataAdapter.InsertCommand Właściwość

Definicja

Pobiera lub ustawia instrukcję Języka Transact-SQL lub procedurę składowaną, aby wstawić nowe rekordy do źródła danych.

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

Wartość właściwości

Element SqlCommand używany podczas Update(DataSet) wstawiania rekordów do bazy danych, które odpowiadają nowym wierszom w obiekcie DataSet.

Atrybuty

Przykłady

Poniższy przykład tworzy obiekt SqlDataAdapter i ustawia SelectCommandwłaściwości , InsertCommand, UpdateCommandi DeleteCommand . Przyjęto założenie, że utworzono SqlConnection już obiekt.

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

Uwagi

Jeśli Updateta właściwość nie jest ustawiona, a informacje o kluczu DataSetpodstawowym znajdują się w obiekcie , InsertCommand można je wygenerować automatycznie, jeśli ustawisz SelectCommand właściwość i użyjesz SqlCommandBuilderelementu . Następnie wszystkie dodatkowe polecenia, które nie zostały ustawione, są generowane przez element SqlCommandBuilder. Ta logika generowania wymaga obecności informacji o kolumnie klucza w obiekcie DataSet. Aby uzyskać więcej informacji, zobacz Generowanie poleceń za pomocą konstruktorów poleceń.

Gdy InsertCommand element jest przypisany do utworzonego wcześniej elementu SqlCommand, SqlCommand element nie jest klonowany. Obiekt InsertCommand obsługuje odwołanie do wcześniej utworzonego SqlCommand obiektu.

Jeśli wykonanie tego polecenia zwraca wiersze, te wiersze można dodać do DataSet elementu w zależności od sposobu ustawiania właściwości SqlCommandUpdatedRowSource obiektu.

Dla każdej kolumny propagowanej do źródła danych w Updatepliku należy dodać parametr do InsertCommand, UpdateCommandlub DeleteCommand. Właściwość SourceColumn parametru powinna być ustawiona na nazwę kolumny. Oznacza to, że wartość parametru nie jest ustawiana ręcznie, ale jest pobierana z określonej kolumny w obecnie przetworzonym wierszu.

Dotyczy

Zobacz też