Как получить значение из столбца в DataView?

у меня есть dataview, определенный как:

DataView dvPricing = historicalPricing.GetAuctionData().DefaultView;

это то, что я пробовал, но он возвращает имя, а не значение в столбце:

dvPricing.ToTable().Columns["GrossPerPop"].ToString();

4 ответов


нужно указать строку, для которой вы хотите получить значение. Я бы, наверное, больше походил на стол.Rows[index] ["GrossPerPop"].ToString ()


вам нужно использовать DataRow чтобы получить значение; значения существуют в данных, а не в заголовках столбцов. В LINQ есть метод расширения, который может помочь:

string val = table.Rows[rowIndex].Field<string>("GrossPerPop");

или без LINQ:

string val = (string)table.Rows[rowIndex]["GrossPerPop"];

(при условии, что данные is строку... если нет, используйте ToString())

если у вас DataView, а не DataTable, то же самое работает с DataRowView:

string val = (string)view[rowIndex]["GrossPerPop"];

@Marc Gravell .... Ваш ответ на самом деле имеет ответ на этот вопрос. Вы можете получить доступ к данным из data view, как показано ниже

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