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();
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()
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 .... 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.
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
来源:https://stackoverflow.com/questions/387334/how-to-get-a-value-from-a-column-in-a-dataview