Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

सी # में एक SQL सर्वर संग्रहीत प्रक्रिया की एसिंक्रोनस कॉल

आपके SqlCommand . में आप BeginExecuteNonQuery . का उपयोग करके अतुल्यकालिक रूप से कमांड चला सकते हैं और EndExecuteNonQuery . बाद वाला अपना काम पूरा होने तक ब्लॉक कर देगा। हालांकि यह सर्वर की प्रगति की रिपोर्ट नहीं करेगा कि बैकअप कैसे चल रहा है - मैं इसके लिए एक मार्की प्रोग्रेस बार का उपयोग करूंगा।

EndExecuteNonQuery से बचने के लिए अपने UI को ब्लॉक करने से (आप इसे कैसे हैंडल करते हैं इसके आधार पर), आपको एक बैकग्राउंड थ्रेड की आवश्यकता होगी। यदि आप इसका उपयोग करते हैं तो आप BeginXXX . का भी उपयोग नहीं कर सकते हैं EndXXX विधियों और इसे पृष्ठभूमि थ्रेड पर सिंक्रोनाइज़ करें - BackgroundWorker इसके लिए सबसे अच्छा है।

UI में बैकग्राउंड थ्रेड का उपयोग करने से बचने के लिए, EndXXX . पर ब्लॉक करने के बजाय आपको कॉलबैक पंजीकृत करना होगा और परिणामी घटना को संभालना होगा (EndXXX . पर कॉल करना) इस घटना में हैंडलर, लेकिन यह तुरंत वापस आ जाएगा)।

अपडेट करें: एक टिप्पणी के अनुसार, SQL कमांड/कनेक्शन सामग्री में एसिंक्रोनस कॉल के लिए, आपको कनेक्शन स्ट्रिंग में उतना ही निर्दिष्ट करना होगा:

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

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

या कनेक्शन स्ट्रिंग बिल्डर का उपयोग करके कोड में:

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. एमएस एसक्यूएल सर्वर 2005 में खुले/सक्रिय कनेक्शन की कुल संख्या कैसे निर्धारित करें?

  2. SQL सर्वर पहचान का परिचय

  3. संग्रहीत प्रक्रिया में गतिशील WHERE क्लॉज का निर्माण

  4. अल्पविराम सीमांकित सूची SQL सर्वर बनाने के लिए यह क्वेरी क्या करती है?

  5. Microsoft SQL सर्वर प्रबंधन स्टूडियो का उपयोग करके डेटाबेस में सभी ट्रिगर के लिए स्क्रिप्ट कैसे उत्पन्न करें