Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Lệnh gọi không đồng bộ của một thủ tục được lưu trữ trên Máy chủ SQL trong C #

Trong SqlCommand của bạn bạn có thể chạy các lệnh không đồng bộ bằng cách sử dụng BeginExecuteNonQueryEndExecuteNonQuery . Sau đó sẽ chặn cho đến khi hoàn thành. Tuy nhiên, điều này sẽ không báo cáo tiến trình từ máy chủ về quá trình sao lưu - Tôi sẽ sử dụng thanh tiến trình marquee cho nó.

Để tránh EndExecuteNonQuery chặn giao diện người dùng của bạn (tùy thuộc vào cách bạn xử lý nó), bạn sẽ cần một chuỗi nền. Nếu bạn sử dụng điều này thì bạn cũng có thể không sử dụng BeginXXX EndXXX và thực hiện đồng bộ trên một chuỗi nền - BackgroundWorker là tốt nhất cho việc này.

Để tránh sử dụng chuỗi nền trong giao diện người dùng, thay vì chặn trên EndXXX bạn sẽ cần đăng ký một cuộc gọi lại và xử lý sự kiện kết quả (gọi EndXXX trong trình xử lý sự kiện này, nhưng nó sẽ trả về ngay lập tức).

Cập nhật: theo nhận xét, đối với các lệnh gọi không đồng bộ vào lệnh SQL / nội dung kết nối, bạn cần chỉ định càng nhiều trong chuỗi kết nối:

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

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

Hoặc trong mã bằng trình tạo chuỗi kết nối:

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. SET so với SELECT khi gán biến?

  2. Làm thế nào để tạo một cột xem KHÔNG ĐẦY ĐỦ

  3. Làm cách nào để hiển thị hình ảnh từ SQL Server bằng ASP.NET?

  4. Làm cách nào để sử dụng hàm CONCAT trong SQL Server 2008 R2?

  5. nối hai số nguyên và kết quả là chuỗi trong SQL