के लिए यह StackOverflow पर मेरी पहली पोस्ट है, इसलिए कोमल हो कृपया ...ADO.NET उत्तम आचरण कनेक्शन और DataAdaptor वस्तु स्कोप
मैं ADO.NET के लिए वस्तु गुंजाइश के बारे में कुछ सवाल हैं।
जब मैं एक डेटाबेस से कनेक्ट, मैं आम तौर पर कोड इस तरह का उपयोग करें:
OleDbConnection conn = new OleDbConnection("my_connection_string");
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * from Employees", conn);
OleDbCommandBuilder cb = new OleDbCommandBuilder(adapter);
DataTable dt = new DataTable();
adapter.Fill(dt);
conn.Close();
conn.Dispose();
कहते हैं कि मैं एक ग्रिड नियंत्रण के परिणामस्वरूप DataTable बाँध और मेरे उन ग्रिड सामग्री संपादित करने की अनुमति दें।
adapter.Update(dt);
यहाँ मेरी प्रश्न हैं:: अब, जब मेरे उपयोगकर्ताओं को एक सहेजें बटन दबाते हैं, तो मैं इस कोड कॉल करने की आवश्यकता
1) मैं एडाप्टर उद्देश्य यह है कि मैं बनाया बनाए रखने की जरूरत है जब मैं मूल रूप से भरा हुआ डेटाटेबल, या मैं अद्यतन करने के लिए सहेजें बटन क्लिक ईवेंट में एक और एडाप्टर ऑब्जेक्ट बना सकता हूं?
2) यदि मुझे मूल एडाप्टर ऑब्जेक्ट को बनाए रखने की आवश्यकता है, तो क्या मुझे कनेक्शन ऑब्जेक्ट को उपलब्ध और खोलने की भी आवश्यकता है?
मैं ADO.NET के डिस्कनेक्टेड मॉडल को समझता हूं - डेटाबेस को अपडेट करने का समय होने पर मैं ऑब्जेक्ट स्कोप पर उलझन में हूं। अगर कोई मुझे इस परिदृश्य के लिए सर्वोत्तम प्रथाओं पर कुछ पॉइंटर्स दे सकता है, तो मैं इसकी सराहना करता हूं!
अग्रिम धन्यवाद ...
डेटा एडेप्टर निश्चित रूप से कनेक्शन खोलने में सक्षम हैं, अब मैं इसे एक उपयोग कथन के अंदर करने के बारे में निश्चित नहीं हूं, लेकिन क्या आप सिर्फ conn को नहीं छोड़ सकते हैं। ओपन() लाइन, और डेटाएडएप्टर कनेक्शन खोलने दें। – GordonB
अच्छा बिंदु। मैंने इसे 2 के तहत भी उल्लेख किया)। :-) मैं कोड उदाहरण –
अपडेट कर सकता हूं क्या डेटाबेस एडाप्टर डेटाबेस में लाखों रिकॉर्ड डंप करने के मामले में एक अच्छा विकल्प हो सकता है (उदाहरण: मेरे डेटाटेबल में 2-3 लाख रिकॉर्ड जो डेटाबेस में हैं ??? –