डेटाटेबल बनाम डेटासेट


129

मैं वर्तमान में डेटाबेस से परिणाम प्राप्त करने के लिए एक डेटाटेबल का उपयोग करता हूं जिसे मैं अपने कोड में उपयोग कर सकता हूं।

हालाँकि, वेब मिसाल पर कई उदाहरण एक DataSet का उपयोग करके और संग्रह विधि के माध्यम से तालिका (नों) को एक्सेस करने के लिए दिखाते हैं।

SQL परिणाम के लिए संग्रहण विधि के रूप में DataSets या DataTables का उपयोग करने का कोई लाभ, प्रदर्शन बुद्धिमान या अन्यथा है?


1
यदि आप वेब एप्लिकेशन के साथ काम कर रहे हैं, तो आप DataReader का उपयोग करने पर विचार कर सकते हैं: aspnet.4guysfromrolla.com/articles/050405-1.aspx aspnet.4guysfromrolla.com/articles/051805-1 .aspx devx.com/vb2themax/ अनुच्छेद / १ ९ true
क्रिस बर्गेस

अंततः, डेटाटेबल और डेटासेट एडीओ रिकॉर्डसेट से उपयोगी बदलाव थे ... 2002 में वापस। आपको इन दिनों अपने प्राथमिक डेटा रूपक को सेंकना नहीं चाहिए।
मार्क Gravell

@MarcGravell आप इन दिनों एक प्राथमिक डेटा रूपक के रूप में क्या सुझाव देंगे?
m_a_s

@m_a_s स्पष्ट टी - कक्षाएं, आम तौर पर; शायद "रिकॉर्ड" ग # vNext में
मार्क Gravell

जवाबों:


94

यह वास्तव में उस डेटा पर निर्भर करता है जिसे आप वापस ला रहे हैं। चूंकि DataSet DataTable ऑब्जेक्ट्स का एक संग्रह है (प्रभाव में), आप डेटा के कई अलग-अलग सेटों को एक एकल में लौटा सकते हैं, और इसलिए अधिक प्रबंधनीय, ऑब्जेक्ट।

प्रदर्शन-वार, आपको .NET निर्माण की "गलत" पसंद की तुलना में अयोग्य प्रश्नों से अक्षमता प्राप्त करने की अधिक संभावना है। कम से कम, यह मेरा अनुभव रहा है।


29

एक बड़ा अंतर यह है कि DataSets कई तालिकाओं को पकड़ सकता है और आप उन तालिकाओं के बीच संबंधों को परिभाषित कर सकते हैं।

यदि आप केवल एक परिणाम सेट लौटा रहे हैं, तो मुझे लगता है कि एक DataTable अधिक अनुकूलित होगा। मुझे लगता है कि एक DataSet करता है और कई DataTables का ट्रैक रखने की कार्यक्षमता प्रदान करने के लिए कुछ ओवरहेड (छोटा) होना चाहिए।


8

1.x में वे चीजें होती थीं जो DataTables नहीं कर सकते थे जो DataSets कर सकता था (ठीक से याद नहीं है)। 2.x में वह सब बदल गया था। मेरा अनुमान है कि बहुत सारे उदाहरण अभी भी डेटासेट का उपयोग करते हैं। DataTables तेज होना चाहिए क्योंकि वे अधिक हल्के होते हैं। यदि आप केवल एक ही परिणाम निकाल रहे हैं, तो यह दोनों के बीच आपकी सबसे अच्छी पसंद है।


4
AFAIK एक बड़ा एक यह था कि एक DataTable को क्रमबद्ध नहीं किया जा सकता था और इसे WebService के परिणामस्वरूप वापस नहीं किया जा सकता था।
मार्टिन क्लार्क

6

डेटासेट की एक विशेषता यह है कि यदि आप अपनी संग्रहीत प्रक्रियाओं में कई चुनिंदा बयानों को कॉल कर सकते हैं, तो डेटासेट में प्रत्येक के लिए एक डेटाटेबल होगा।


तुम भी dataset.Tables में एक SqlCommand में और पहुँच प्रत्येक resultset कई एसक्यूएल का चयन क्वेरी चला सकते हैं [i]
जनवरी

3

डेटाटेबल भरते समय आप कुछ अनुकूलन कर सकते हैं, जैसे कि BeginLoadData (), डेटा सम्मिलित करना, फिर EndLoadData () कॉल करना। यह DataTable के भीतर कुछ आंतरिक व्यवहार को बंद कर देता है, जैसे कि अनुरक्षण रखरखाव, आदि। इस लेख को आगे के विवरण के लिए देखें।


1

जब आप केवल किसी भी तालिका के साथ काम कर रहे होते हैं, तो सबसे बड़ा व्यावहारिक अंतर जो मैंने पाया है वह यह है कि डेटासेट में एक "हैशटैग" विधि है, लेकिन डेटाटेबल नहीं है। दोनों में हालांकि एक "गेटचेंज" है, इसलिए आप इसका उपयोग कर सकते हैं और अशक्त के लिए परीक्षण कर सकते हैं।


0

डेटाटेबल ऑब्जेक्ट इन-मेमोरी, पंक्तियों, कॉलमों और बाधाओं के सारणीबद्ध कैश के रूप में सारणीबद्ध डेटा का प्रतिनिधित्व करता है। DataSet में DataTable ऑब्जेक्ट्स का एक संग्रह होता है जिसे आप DataRelation ऑब्जेक्ट्स के साथ एक दूसरे से संबंधित कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.