SqlDataAdapter.UpdateCommand Egenskap

Definition

Hämtar eller anger en Transact-SQL-instruktion eller lagrad procedur som används för att uppdatera poster i datakällan.

public:
 property System::Data::SqlClient::SqlCommand ^ UpdateCommand { System::Data::SqlClient::SqlCommand ^ get(); void set(System::Data::SqlClient::SqlCommand ^ value); };
[System.Data.DataSysDescription("DbDataAdapter_UpdateCommand")]
public System.Data.SqlClient.SqlCommand UpdateCommand { get; set; }
public System.Data.SqlClient.SqlCommand UpdateCommand { get; set; }
[<System.Data.DataSysDescription("DbDataAdapter_UpdateCommand")>]
member this.UpdateCommand : System.Data.SqlClient.SqlCommand with get, set
member this.UpdateCommand : System.Data.SqlClient.SqlCommand with get, set
Public Property UpdateCommand As SqlCommand

Egenskapsvärde

En SqlCommand som används under Update(DataSet) för att uppdatera poster i databasen som motsvarar ändrade rader i DataSet.

Attribut

Exempel

I följande exempel skapas en SqlDataAdapter och anger SelectCommandegenskaperna , InsertCommandUpdateCommand och DeleteCommand . Det förutsätter att du redan har skapat ett SqlConnection objekt.

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

Kommentarer

Under Update, om den här egenskapen inte har angetts och primärnyckelinformation finns i DataSet, UpdateCommand kan genereras automatiskt om du anger SelectCommand egenskapen och använder SqlCommandBuilder. Sedan genereras eventuella ytterligare kommandon som du inte anger av SqlCommandBuilder. Den här generationslogik kräver att information om nyckelkolumner DataSetfinns i . Mer information finns i Generera kommandon med CommandBuilders.

När UpdateCommand har tilldelats till en tidigare skapad SqlCommandSqlCommand klonas inte . Underhåller UpdateCommand en referens till det tidigare skapade SqlCommand objektet.

Note

Om körningen av det här kommandot returnerar rader kan de uppdaterade raderna sammanfogas med DataSet beroende på hur du anger egenskapen UpdatedRowSource för SqlCommand objektet.

För varje kolumn som du sprider till datakällan på Updateska en parameter läggas till i InsertCommand, UpdateCommandeller DeleteCommand.

Egenskapen SourceColumn för parametern ska anges till namnet på kolumnen. Detta anger att värdet för parametern inte anges manuellt, utan hämtas från den specifika kolumnen i den för närvarande bearbetade raden.

Gäller för

Se även