SqlDataAdapter.UpdateCommand Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau mengatur pernyataan Transact-SQL atau prosedur tersimpan yang digunakan untuk memperbarui rekaman di sumber data.
public:
property Microsoft::Data::SqlClient::SqlCommand ^ UpdateCommand { Microsoft::Data::SqlClient::SqlCommand ^ get(); void set(Microsoft::Data::SqlClient::SqlCommand ^ value); };
public Microsoft.Data.SqlClient.SqlCommand UpdateCommand { get; set; }
member this.UpdateCommand : Microsoft.Data.SqlClient.SqlCommand with get, set
Public Property UpdateCommand As SqlCommand
Nilai Properti
yang SqlCommand digunakan selama Update(DataSet) untuk memperbarui rekaman dalam database yang sesuai dengan baris yang dimodifikasi di DataSet.
Contoh
Contoh berikut membuat SqlDataAdapter dan mengatur SelectCommandproperti , InsertCommand, UpdateCommand dan DeleteCommand . Ini mengasumsikan Anda telah membuat SqlConnection objek.
using Microsoft.Data.SqlClient;
class Program
{
static void Main()
{
}
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;
}
}
Keterangan
Selama Update, jika properti ini tidak diatur dan informasi kunci primer ada di DataSet, UpdateCommand dapat dihasilkan secara otomatis jika Anda mengatur SelectCommand properti dan menggunakan SqlCommandBuilder. Kemudian, setiap perintah tambahan yang tidak Anda tetapkan dihasilkan oleh SqlCommandBuilder. Logika generasi ini memerlukan informasi kolom kunci untuk hadir di DataSet. Untuk mendapatkan informasi selengkapnya, lihat Menghasilkan Perintah dengan CommandBuilders.
Ketika UpdateCommand ditetapkan ke yang dibuat SqlCommandsebelumnya , SqlCommand tidak dikloning. UpdateCommand mempertahankan referensi ke objek yang dibuat SqlCommand sebelumnya.
Catatan
Jika eksekusi perintah ini mengembalikan baris, baris yang diperbarui dapat digabungkan dengan DataSet bergantung pada cara Anda mengatur properti UpdatedRowSource objek SqlCommand .
Untuk setiap kolom yang Anda sebarkan ke sumber data di Update, parameter harus ditambahkan ke InsertCommand
, , UpdateCommand
atau DeleteCommand
.
Properti SourceColumn
parameter harus diatur ke nama kolom. Ini menunjukkan bahwa nilai parameter tidak diatur secara manual, tetapi diambil dari kolom tertentu di baris yang saat ini diproses.