9

I have a dataview defined as:

DataView dvPricing = historicalPricing.GetAuctionData().DefaultView;

This is what I have tried, but it returns the name, not the value in the column:

dvPricing.ToTable().Columns["GrossPerPop"].ToString();
Xaisoft
  • 45,655
  • 87
  • 279
  • 432

4 Answers4

7

You need to specify the row for which you want to get the value. I would probably be more along the lines of table.Rows[index]["GrossPerPop"].ToString()

BFree
  • 102,548
  • 21
  • 159
  • 201
6

You need to use a DataRow to get a value; values exist in the data, not the column headers. In LINQ, there is an extension method that might help:

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

or without LINQ:

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

(assuming the data is a string... if not, use ToString())

If you have a DataView rather than a DataTable, then the same works with a DataRowView:

string val = (string)view[rowIndex]["GrossPerPop"];
Marc Gravell
  • 1,026,079
  • 266
  • 2,566
  • 2,900
3

@Marc Gravell .... Your answer actually has the answer of this question. You can access the data from data view as below

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.
Damian Kozlak
  • 7,065
  • 10
  • 45
  • 51
Ashay
  • 31
  • 1
1

for anyone in 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
Ali
  • 3,373
  • 5
  • 42
  • 54
nghiavt
  • 423
  • 5
  • 14