Как получить значение из столбца в DataView? - PullRequest
8 голосов
/ 22 декабря 2008

У меня есть вид данных, определенный как:

DataView dvPricing = historicalPricing.GetAuctionData().DefaultView;

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

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

Ответы [ 4 ]

7 голосов
/ 22 декабря 2008

Вам необходимо указать строку, для которой вы хотите получить значение. Я, вероятно, был бы более в соответствии с таблицей.

5 голосов
/ 23 декабря 2008

Вам нужно использовать 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"];
2 голосов
/ 31 октября 2013

@ Марк Гравелл .... Ваш ответ на самом деле имеет ответ на этот вопрос. Вы можете получить доступ к данным из представления данных, как показано ниже

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.
1 голос
/ 21 марта 2015

для всех в 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
...