नीचे कोड को ध्यान में रखते:DataView.RowFilter बनाम DataTable.Select() बनाम DataTable.Rows.Find()
Dataview someView = new DataView(sometable)
someView.RowFilter = someFilter;
if(someView.count > 0) { …. }
काफी लेख जो Datatable.Select (कहते हैं कि के एक नंबर) DataViews का उपयोग कर से बेहतर है, लेकिन ये वीएस -2008 से पहले हैं।
Solved: The Mystery of DataView's Poor Performance with Large Recordsets
Array of DataRecord vs. DataView: A Dramatic Difference in Performance
इस विषय मैं कुछ लेख/मंच विषयों जो Datatable.Select उल्लेख पाया पर Googling() अपने आप में काफी गाड़ी (इस पर यकीन नहीं) है और विभिन्न स्थितियों में खराब प्रदर्शन करता है।
इस (Best Practices ADO.NET) यह MSDN पर विषय पर सुझाव दिया है कि अगर वहाँ प्राथमिक कुंजी findrows() एक datatable या लगता है पर परिभाषित() है तरीकों Datatable.Select के insted इस्तेमाल किया जाना चाहिए()।
यह आलेख here (.NET 1.1) सभी तीन दृष्टिकोणों के साथ-साथ कुछ और बेंचमार्क करता है। लेकिन यह संस्करण 1.1 के लिए है इसलिए सुनिश्चित नहीं है कि ये अभी भी वैध हैं या नहीं। इस DataRowCollection.Find() के लिए accroding सभी दृष्टिकोण और डेटाटेबल से बेहतर प्रदर्शन करता है। चयन करें() DataView.RowFilter से बेहतर प्रदर्शन।
तो मैं काफी हद तक उलझन में हूं कि डेटाटेबल में पंक्तियों को खोजने के लिए सबसे अच्छा तरीका क्या हो सकता है। या ऐसा करने का कोई भी अच्छा तरीका नहीं है, परिदृश्य के आधार पर कई समाधान मौजूद हैं?
इनाम के लिए धन्यवाद! – thmshd