C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: CSVファイルを読み込んだDataGridでのレコード抽出


(過去ログ 15 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■5240 / inTopicNo.1)  CSVファイルを読み込んだDataGridでのレコード抽出
  
□投稿者/ まるお (9回)-(2007/07/08(Sun) 10:02:50)

分類:[VB.NET (Windows)] 

お世話になります。
VB.net2003を使っています。
csvファイルを読み込み、全レコードをDataGridに表示させています。
ここから特定の条件に一致したレコードのみ表示させたいのですがフィルタ条件の記述の仕方が分かりません。

具体的には
DataGrid1.DataSource=ds.Tables(0) としてds(データセット)に格納したレコードの一覧を表示するところまではうまくいくのですが
ここから例えばID=1(IDは列名です)となるレコードだけをDataGridに表示させたい場合、元となるレコードがAccessデータの「t_顧客」というテーブルであれば
DataGrid1.DataSource=New Dataview(ds.Tables("t_顧客"),"ID=1","",DataViewRowState.CurrentRows)とすれば可能なのですが、csvファイルの場合上記と同様に
DataGrid1.DataSource=New Dataview(ds.Tables(0),"ID=1","",DataViewRowState.CurrentRows)としてもうまくいきません。

csvファイルが元レコードである場合、列名の記述の仕方が異なるのでしょうか?

よろしくお願いいたします。
引用返信 編集キー/
■5241 / inTopicNo.2)  Re[1]: CSVファイルを読み込んだDataGridでのレコード抽出
□投稿者/ ダッチ (145回)-(2007/07/08(Sun) 10:16:47)
csv で取得した際に列名が "Column1" などの既定の名前になっているのではないでしょうか。
DataColumn.ColumnName プロパティ を使用して "ID" と指定すればうまくいくと思います。

DataColumn.ColumnName プロパティ
http://msdn2.microsoft.com/ja-jp/library/system.data.datacolumn.columnname(VS.80).aspx
引用返信 編集キー/
■5242 / inTopicNo.3)  Re[2]: CSVファイルを読み込んだDataGridでのレコード抽出
□投稿者/ まるお (11回)-(2007/07/08(Sun) 10:29:49)
No5241 (ダッチ さん) に返信
ご返信いただきありがとうございます。

' For each DataTable, print the ColumnName.
For Each table In ds.Tables
For Each column In table.Columns
Debug.WriteLine(column.ColumnName)
Next
Next

の記述を加え、ColumnNameを出力してみましたが、きちんと列名が入っているようです。
ちなみに、表示されるエラーは
DataGrid1.DataSource=New Dataview(ds.Tables(0),"ID=1","",DataViewRowState.CurrentRows)の読み込みの箇所で
「System.Data.EvaluateException' のハンドルされていない例外が system.data.dll で発生しました。
追加情報 : System.String および System.Int32 で '=' 操作を実行できません。 」です。

よろしくお願いいたします。
引用返信 編集キー/
■5243 / inTopicNo.4)  Re[3]: CSVファイルを読み込んだDataGridでのレコード抽出
□投稿者/ はつね (200回)-(2007/07/08(Sun) 11:17:04)
はつね さんの Web サイト
No5242 (まるお さん) に返信
> DataGrid1.DataSource=New Dataview(ds.Tables(0),"ID=1","",DataViewRowState.CurrentRows)の読み込みの箇所で
> 「System.Data.EvaluateException' のハンドルされていない例外が system.data.dll で発生しました。
> 追加情報 : System.String および System.Int32 で '=' 操作を実行できません。 」です。

推測ですが、ID列が文字列型として認識されているので ID='1'としないとだめだとか?

引用返信 編集キー/
■5244 / inTopicNo.5)  Re[4]: CSVファイルを読み込んだDataGridでのレコード抽出
□投稿者/ まるお (12回)-(2007/07/08(Sun) 11:20:04)
No5243 (はつね さん) に返信
> 推測ですが、ID列が文字列型として認識されているので ID='1'としないとだめだとか?
>

その通りでした!上記方法で無事解決しました。初歩的なミスで申し訳ありません。
ダッチさん、はつねさん、どうもありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -