- PR -

XMLファイルにフイルターを付けてDataGridに連結

1
投稿者投稿内容
rvmx
大ベテラン
会議室デビュー日: 2002/09/26
投稿数: 184
お住まい・勤務地: 愛媛県
投稿日時: 2002-11-14 11:25
お世話になります。

現在XMLで色々試して見ていますが、フイルターにより選択後
DataGridに表示させたいのですが、方法が分かりません。
環境はwindows.Formです。
勿論データベースを使えば問題なく、各種方法でうまくいっています。
下記方法で、表示や編集は出来ますが、全データが対象となってしまいます。
 
FileStream fs=new FileStream(XMLファイル名,FileMode.Open);
DataSet ds=new DataSet();
ここでフィルター操作?
ds.ReadXml(fs);
Datagrid1.DataSource=ds;
Datagrid1.DataMember = "****";

又、変更などはDataSetのtableとRowの操作でうまく行っています。

ご存知の方、よろしくお願いします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2002-11-14 17:23
こんにちは
引用:

rvmxさんの書き込み (2002-11-14 11:25) より:
 
FileStream fs=new FileStream(XMLファイル名,FileMode.Open);
DataSet ds=new DataSet();
ここでフィルター操作?
ds.ReadXml(fs);
' ※※ここで、テーブルにフィルター操作※※
Datagrid1.DataSource=ds;
Datagrid1.DataMember = "****";


DataTableに、Filterとかの設定があります。そちらでいけませんか?
rvmx
大ベテラン
会議室デビュー日: 2002/09/26
投稿数: 184
お住まい・勤務地: 愛媛県
投稿日時: 2002-11-14 20:42
Jittaさん情報有難う御座いました。

しかし、ADO.NETではDataTableに、Filterは無いみたいです。
以前のRecordSetには有りましたが。

色々やってみて、下記2つの方法があるみたいですが、片方でうまく行きましたので
ご報告します。
うまく行った方
FileStream fs=new FileStream(XMLファイル名,FileMode.Open);
DataSet ds=new DataSet();
  ds.ReadXml(fs);
DataView dv=new DataView(ds.Tables["****"]);
dv.RowFilter="A='123'";//フィルター式
DataGrid1.DataSource=dv;
//DataGrid1.DataMember = "****";無効にする

行かなかった方
DataTable dt=ds.Tables["****"];
DataRow[] dr=dt.Select("A='123'");



rvmx
大ベテラン
会議室デビュー日: 2002/09/26
投稿数: 184
お住まい・勤務地: 愛媛県
投稿日時: 2002-11-15 10:32
追記

前回、うまく行かなかった方
DataTable dt=ds.Tables["****"];
DataRow[] dr=dt.Select("A='123' AND b like 'c' AND .....");

if(dr.Length>0)
{ {
string address=dr[0]["address"].ToString();
.....
も、データ抽出などではうまく行きます。

1

スキルアップ/キャリアアップ(JOB@IT)