كيف يمكنني ربط نتيجة DataTable.Select() بعنصر تحكم ListBox؟
-
02-07-2019 - |
سؤال
لدي الكود التالي:
ListBox.DataSource = DataSet.Tables("table_name").Select("some_criteria = match")
ListBox.DisplayMember = "name"
ال DataTable.Select()
طريقة إرجاع مجموعة من System.Data.DataRow
أشياء.
بغض النظر عما أحدده في ListBox.DisplayMember
الخاصية، كل ما أراه هو ListBox مع العدد الصحيح من العناصر التي تظهر جميعها كـ System.Data.DataRow
بدلاً من القيمة التي أريدها والموجودة في "name"
عمود!
هل من الممكن ربط المصفوفة الناتجة من DataTable.Select()
, ، بدلاً من التكرار خلاله وإضافة كل واحد إلى ملف ListBox
?
(ليس لدي مشكلة في التكرار، ولكن لا يبدو أن النهاية أنيقة!)
المحلول
إستخدم عرض البيانات بدلاً من.
ListBox.DataSource = new DataView(DataSet.Tables("table_name"), "some_criteria = match", "name", DataViewRowState.CurrentRows);
ListBox.DisplayMember = "name"
نصائح أخرى
جوش لديه الحق في استخدام DataView.إذا كنت بحاجة إلى مطرقة كبيرة جدًا، فيمكنك أخذ مصفوفة الصفوف من أي DataTable.Select("...") وإجراء الدمج في DataSet مختلفة.
DataSet copy = new DataSet();
copy.Merge(myDataTable.Select("Foo='Bar'"));
// copy.Tables[0] has a clone
من المحتمل أن يكون هذا الأسلوب فيما تحاول القيام به مبالغة ولكن هناك حالات قد تحتاج فيها إلى الحصول على جدول بيانات من مجموعة من الصفوف حيث يكون ذلك مفيدًا.