كيفية الحصول على قيمة من عمود في DataView؟
سؤال
لدي DataView المعرفة على النحو التالي:
DataView dvPricing = historicalPricing.GetAuctionData().DefaultView;
هذا هو ما حاولت، لكنه بإرجاع الاسم، وليس القيمة في العمود:
dvPricing.ToTable().Columns["GrossPerPop"].ToString();
المحلول
تحتاج إلى تحديد الصف الذي تريد الحصول عليه. ربما أكون أكثر من خطوط الطاولة. ولا تقطع [فهرس] ["grossperpop"].
نصائح أخرى
تحتاج إلى استخدام DataRow
للحصول على قيمة؛ توجد القيم في البيانات، وليس رؤوس الأعمدة. في LINQ، هناك طريقة تمديد قد تساعد:
string val = table.Rows[rowIndex].Field<string>("GrossPerPop");
أو بدون LINQ:
string val = (string)table.Rows[rowIndex]["GrossPerPop"];
(على افتراض البيانات يكون سلسلة ... إذا لم يكن كذلك، استخدم ToString()
)
اذا كان لديك DataView
بدلا من DataTable
, ، ثم نفس الأعمال مع DataRowView
:
string val = (string)view[rowIndex]["GrossPerPop"];
@ marc gravell .... إجابتك لديها بالفعل إجابة هذا السؤال. يمكنك الوصول إلى البيانات من عرض البيانات على النحو التالي
string val = (string)DataView[RowIndex][column index or column name in double quotes] ;
// or
string val = DataView[RowIndex][column index or column name in double quotes].toString();
// (I didn't want to opt for boxing / unboxing) Correct me if I have misunderstood.
لأي شخص في vb.net:
Dim dv As DataView = yourDatatable.DefaultView
dv.RowFilter ="query " 'ex: "parentid = 1 "
for a in dv
dim str = a("YourColumName") 'for retrive data
next
لا تنتمي إلى StackOverflow