Bagikan melalui


Eksekusi SqlCommand dengan SqlNotificationRequest

Mengunduh ADO.NET

Sebuah SqlCommand dapat dikonfigurasi untuk menghasilkan pemberitahuan ketika data berubah setelah diambil dari server dan kumpulan hasil akan berbeda jika kueri dijalankan lagi. Hal ini berguna untuk skenario di mana Anda ingin menggunakan antrean pemberitahuan khusus pada server atau ketika Anda tidak ingin menyimpan objek langsung.

Membuat permintaan pemberitahuan

Anda dapat menggunakan SqlNotificationRequest objek untuk membuat permintaan pemberitahuan dengan mengikatnya ke SqlCommand objek. Setelah permintaan dibuat, Anda tidak lagi memerlukan SqlNotificationRequestobjek. Anda dapat meminta antrean untuk pemberitahuan apa pun dan menjawab dengan tepat. Pemberitahuan dapat muncul bahkan jika aplikasi dimatikan dan kemudian dihidupkan ulang.

Saat perintah dengan pemberitahuan terkait dijalankan, setiap perubahan pada pemicu kumpulan hasil asli yang mengirim pesan ke antrean SQL Server yang telah dikonfigurasi dalam permintaan pemberitahuan.

Cara Anda mensurvei antrean SQL Server dan menafsirkan pesan khusus untuk aplikasi Anda. Aplikasi ini bertanggung jawab atas survei antrean dan bereaksi berdasarkan isi pesan.

Catatan

Saat menggunakan permintaan pemberitahuan SQL Server dengan SqlDependency, buat nama antrean Anda sendiri, alih-alih menggunakan nama layanan default.

Tidak ada elemen keamanan pada sisi klien yang baru untuk SqlNotificationRequest. Ini terutama fitur server, dan server telah mengeluarkan izin khusus yang harus dimiliki pengguna untuk meminta pemberitahuan.

Contoh

Fragmen kode berikut menunjukkan cara membuat SqlNotificationRequest dan mengaitkannya dengan SqlCommand.

// Assume connection is an open SqlConnection.
// Create a new SqlCommand object.
SqlCommand command=new SqlCommand(
 "SELECT ShipperID, CompanyName, Phone FROM dbo.Shippers", connection);

// Create a SqlNotificationRequest object.
SqlNotificationRequest notificationRequest=new SqlNotificationRequest();
notificationRequest.id="NotificationID";
notificationRequest.Service="mySSBQueue";

// Associate the notification request with the command.
command.Notification=notificationRequest;
// Execute the command.
command.ExecuteReader();
// Process the DataReader.
// You can use Transact-SQL syntax to periodically poll the
// SQL Server queue to see if you have a new message.

Langkah berikutnya