SqlDataAdapter.UpdateCommand Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia instrukcję Języka Transact-SQL lub procedurę składowaną używaną do aktualizowania rekordów w źródle danych.
public:
property System::Data::SqlClient::SqlCommand ^ UpdateCommand { System::Data::SqlClient::SqlCommand ^ get(); void set(System::Data::SqlClient::SqlCommand ^ value); };
public System.Data.SqlClient.SqlCommand UpdateCommand { get; set; }
[System.Data.DataSysDescription("DbDataAdapter_UpdateCommand")]
public System.Data.SqlClient.SqlCommand UpdateCommand { get; set; }
member this.UpdateCommand : System.Data.SqlClient.SqlCommand with get, set
[<System.Data.DataSysDescription("DbDataAdapter_UpdateCommand")>]
member this.UpdateCommand : System.Data.SqlClient.SqlCommand with get, set
Public Property UpdateCommand As SqlCommand
Wartość właściwości
Element SqlCommand używany podczas Update(DataSet) aktualizowania rekordów w bazie danych, które odpowiadają zmodyfikowanym wierszom w obiekcie DataSet.
- Atrybuty
Przykłady
Poniższy przykład tworzy obiekt SqlDataAdapter i ustawia SelectCommandwłaściwości , InsertCommandUpdateCommand i 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 , UpdateCommand 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 UpdateCommand element jest przypisany do utworzonego wcześniej elementu SqlCommand, SqlCommand element nie jest klonowany. Obiekt UpdateCommand obsługuje odwołanie do wcześniej utworzonego SqlCommand obiektu.
Uwaga
Jeśli wykonanie tego polecenia zwraca wiersze, zaktualizowane wiersze mogą zostać scalone z właściwością DataSetUpdatedRowSource obiektu w zależności od tego, jak ustawić właściwość SqlCommand UpdatedRowSource.
Dla każdej kolumny propagowanej do źródła danych w Updatepliku należy dodać parametr do InsertCommand
, UpdateCommand
lub DeleteCommand
.
Właściwość SourceColumn
parametru powinna być ustawiona na nazwę kolumny. Oznacza to, że wartość parametru nie jest ustawiana ręcznie, ale pobierana z określonej kolumny w obecnie przetworzonym wierszu.