यदि कॉल करने जा रहे तरीकों/कार्यों में एक खुले SqlConnection की आवश्यकता शामिल है, तो मैं इसे उस विधि में खोलूंगा जो फ़ंक्शन को कॉल कर रहा है। उदाहरण के लिए:क्या एक पैरामीटर के रूप में एक खुला SqlConnection पास करना सबसे अच्छा है, या प्रत्येक विधि में एक नया कॉल करें?
protected static void btnSubmit(){
conn.Open();
myMethod(someParam, conn);
conn.Close();
}
protected static void myMethod(object someParam, SqlConnection conn){
//Some SQL commands etc here..
}
मैं यह करने के लिए इतना है कि मैं:
- केवल कभी खुले और बंद प्रक्रिया प्रति 1 SqlConnection
हालांकि, यह बेहतर होगा ताकि तरह मेरे कोड की संरचना करने के :
protected static void btnSubmit(){
myMethod(someParam);
}
protected static void myMethod(object someParam){
SqlConnection conn = New SqlConnection(".....");
conn.Open();
//Some SQL commands etc here..
conn.Close();
}
मुझे इस तरह की संरचना करने का लाभ यह है:
- मैं बाद में लाइन पद्धति अब एक एसक्यूएल आदेश है नीचे, वहाँ एक अप्रयुक्त पैरामीटर हर बार
नुकसान मैं यह करने के लिए देखते हैं, है:
- तो
myMethod
एक पुनरावर्ती विधि है, तो जब वह खुद कहता है इसकी एक औरSqlConnection
खोलने जा रहा, और इतने पर, और इतने पर .. - यदि
btnSubmit
कई विधियों को कॉल कर रहा है, जिन्हें सभी को SQL कनेक्शन की आवश्यकता होती है, तो प्रत्येक एक नया कनेक्शन खोलने और बंद करने जा रहा है।
ऐसा करने का सबसे अच्छा तरीका क्या है, और इसका सबसे अधिक अभ्यास किया जाता है?
तो यदि मैं 100 अलग-अलग SQLConnection ऑब्जेक्ट्स खोलता हूं, तो सभी एक ही डेटाबेस/लॉगिन के लिए, यह प्रसंस्करण पर कोई अतिरिक्त तनाव नहीं डाल रहा है? अतिरिक्त जानकारी के लिए – Curt
चीयर्स। तो 'myMethod' में अपना' उपयोग 'कथन डालने का अच्छा अभ्यास है (मेरे उदाहरण का उपयोग करके)? प्रदर्शन उद्देश्यों के लिए मैंने हमेशा इसे टाला है, लेकिन अगर इससे कोई फर्क नहीं पड़ता है तो यह इतना साफ होगा! – Curt
यदि आप इसे विश्वास नहीं करते हैं, तो परीक्षण करें और इसे आजमाएं :) आप देखेंगे कि कोई अंतर नहीं है (कम से कम ध्यान देने योग्य नहीं)। कनेक्शन पूल में एक संपत्ति है कि अधिकतम पूल आकार क्या है (100 एक डिफ़ॉल्ट मान है, मुझे लगता है), यहां एक नज़र डालें: http://msdn.microsoft.com/en-us/library/8xx3tyca(v= vs.71) .aspx "कनेक्शन स्ट्रिंग कीवर्ड के साथ कनेक्शन पूलिंग को नियंत्रित करना" अनुभाग –