web-dev-qa-db-ja.com

DataViewの列から値を取得するにはどうすればよいですか?

私は次のように定義されたデータビューを持っています:

DataView dvPricing = historicalPricing.GetAuctionData().DefaultView;

これは私が試したものですが、列の値ではなく名前が返されます。

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

値を取得する行を指定する必要があります。私はおそらくtable.Rows [index] ["GrossPerPop"]。ToString()の線に沿っているでしょう

7
BFree

値を取得するには、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"];
_
5
Marc Gravell

@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.
3
Ashay

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
1
nghiavt