2008-10-05 12 views
11

डेटाबेस से डेटा (दृढ़ता से टाइप या अन्यथा) के साथ काम करते समय मुझे हमेशा उपयोग करना प्रतीत होता है और मुझे कभी भी भरने के लिए वास्तव में आवश्यकता नहीं है हालांकि मैं डेटा खींचने और डेटा अपडेट करने के बजाय आसानी से भर सकता हूं।.NET तालिका एडाप्टर: बनाम भरें?

क्या कोई भी प्रत्येक विधि के प्रभाव और गठबंधन के रूप में मार्गदर्शन प्रदान कर सकता है?

किस स्थिति में एक या दूसरे का उपयोग करना बेहतर है?

कोई प्रदर्शन प्रभाव?

उत्तर के लिए अग्रिम धन्यवाद! मुझे इस समुदाय से प्यार है!

उत्तर

3

तालिका का पहले से ही डेटा है, यदि तालिका में पहले से डेटा शामिल है, तो आप अद्वितीय इंडेक्स अपवाद प्राप्त कर सकते हैं, उदाहरण के लिए, क्वेरी एक पंक्ति लौटाती है जिसका प्राथमिक कुंजी पहले से ही तालिका में है।

मैंने बहुत से डेटा-बाउंड विंडोज फॉर्म कोड के साथ काम किया है जहां संपादन नियंत्रण या फॉर्म पर ग्रिड एक टेबल से बंधे हैं और फिर डेटाबेस से अधिक पंक्तियों को लोड करने के लिए भरने के लिए उपयोग किया जाता है। इससे कुछ रोचक घटना फायरिंग अनुक्रम और अनुभव से अंतःक्रियात्मक त्रुटियां हो सकती हैं।

नए परिणामों के साथ एक नई तालिका पुनर्प्राप्त करने के लिए उपयोग करें, फिर नई तालिका में फॉर्म को पुन: सहेजना इस तरह की स्थितियों से बच सकता है।

मुझे संदेह है कि मौजूदा पंक्तियों के साथ तालिका भरने तक दोनों के बीच बहुत अधिक प्रदर्शन अंतर है। इस मामले में तालिका की BeginLoadData विधि को अनदेखा किया जाता है जो आम तौर पर अंत तक घटना फायरिंग और इंडेक्स पुनर्निर्माण में देरी कर देता है।

1

एकमात्र अंतर यह है कि गेटडाटा आपके लिए एक टेबल को तुरंत चालू करता है, भरने के लिए एक मौजूदा तालिका भर जाएगी।

यह निर्भर करता है कि आप डेटाटेबल को तुरंत चालू करना चाहते हैं या नहीं। मैं डेटासेट के एक निश्चित तालिका सदस्य को भरते समय अक्सर भरता हूं, जिसे मैंने पहले ही चालू कर दिया है।

3
  • जब आप केवल एक डेटाटेबल चाहते हैं तो प्राप्त करें।
  • जब आप एक ही डेटासेट में अतिरिक्त डेटाटेबल जोड़ना चाहते हैं तो भरें।
4

भरने का उपयोग अपवादों को डीबग करने के लिए बहुत अच्छा हो सकता है क्योंकि विधि में पारित डेटाटेबल से अधिक जानकारी के लिए पूछताछ की जा सकती है। एक ही स्थिति में वापस नहीं आती है।

सुझाव:

  • DataTable.GetErrors() रिटर्न DataRow उदाहरणों कि त्रुटि में हैं का एक सरणी
  • DataRow.RowError (पंक्ति त्रुटि
  • DataRow.GetColumnsInError के विवरण शामिल हैं) त्रुटि
में डेटा कॉलम उदाहरणों की एक सरणी देता है
संबंधित मुद्दे