Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Panggilan asinkron dari prosedur tersimpan SQL Server di C#

Di SqlCommand . Anda anda dapat menjalankan perintah secara asinkron menggunakan BeginExecuteNonQuery dan EndExecuteNonQuery . Yang terakhir akan memblokir sampai selesai. Namun ini tidak akan melaporkan kemajuan dari server tentang bagaimana pencadangan berlangsung - saya akan menggunakan bilah kemajuan tenda untuk itu.

Untuk menghindari EndExecuteNonQuery dari memblokir UI Anda (tergantung bagaimana Anda menanganinya), Anda akan memerlukan utas latar belakang. Jika Anda menggunakan ini maka Anda sebaiknya tidak menggunakan BeginXXX EndXXX metode dan melakukannya secara sinkron di utas latar belakang - BackgroundWorker yang terbaik untuk ini.

Untuk menghindari penggunaan utas latar belakang di UI, alih-alih memblokir di EndXXX Anda perlu mendaftarkan panggilan balik dan menangani acara yang dihasilkan (memanggil EndXXX di event handler ini, tetapi akan segera kembali).

Pembaruan: sesuai komentar, untuk panggilan asinkron ke perintah SQL/koneksi, Anda perlu menentukan sebanyak mungkin dalam string koneksi:

http://www.connectionstrings.com/sql-server-2008

Server=myServerAddress; Database=myDataBase; Integrated Security=True; Asynchronous Processing=True;

Atau dalam kode menggunakan pembuat string koneksi:

builder.AsynchronousProcessing = true;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Peningkatan Layanan Broker di SQL Server 2016

  2. Berapa banyak karakter dalam varchar (maks)?

  3. Cara mendapatkan catatan pertama dari setiap grup dari hasil yang diambil dengan menggunakan grup dengan perintah

  4. Tidak dapat terhubung ke database SQLServer di aplikasi Java

  5. UCS-2 dan SQL Server