- - PR -
プログラミングによるクエリーの設定方法
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-06-24 11:56
C# Webform にて開発中です。
DataGridに表示されているデータを、チェックボタンなどを選択することによって クエリーを変更し、別のデータを表示させたいという、 プログラミングによるクエリーの設定方法手順がわかりません。 初歩的な内容なので、大変恐縮ですが 何かよいサンプルやヒント項目がありましたら、教えて頂きたいです。 宜しくお願い致します。 (ちなみに、OleDaDataAdapterを使用します。) | ||||||||
|
投稿日時: 2003-06-24 16:26
こんにちは。
「チェックボックス」など、選択するものをrunat="server"でマークします。 「検索」などの、DataGridへ表示するトリガーとなるボタンなどを作ります。 そのトリガーのイベントで、選択するものの内容を取り込み、if文などでSELECT文を構築します。 できあがったSELECT文を発行し、結果をDataGridにバインドすればOK。 | ||||||||
|
投稿日時: 2003-06-24 19:30
お返事、どうもありがとうございます。
以下のような感じでプログラムを作成しましたところ、DataGridが表示されません。。。 エラーは出てないんですけど。 (ツールボックスのDataSetを使用する場合は、表示されています。) 何か、足りない設定があるのでしょうか? アドバイスを頂きたいです。 宜しくお願い致します。 -------------------------------------------------------------------------- // チェックボックスがチェックされた場合 if(ChkOnlyLO.Checked) Test1(); // チェックが外された場合 else Test2(); //結果をDataGridにバインド DataGrid1.DataBind(); public void Test1() { //コネクション設定// OleDbConnection myConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Test.MDB"); myConnection.Open(); //クエリー設定// string mySelectQuery = "SELECT * FROM Categories ORDER BY CategoryID"; OleDbCommand myCommand = new OleDbCommand(mySelectQuery,myConnection,myTrans); //DataAdapter設定// OleDbDataAdapter custDA = new OleDbDataAdapter(); custDA.SelectCommand = myCommand; //DataSet設定// DataSet custDS = new DataSet(); custDA.Fill(custDS, "Customers"); } -------------------------------------------------------------------------- そして、つかぬ質問なのですが、 一番初めにページが読み込まれる時は、ツールボックスからのoleDbDataAdapterとDataSetにてデータを設定しております。 上記のような操作をしたい場合、クエリー文のみを設定すればよいのでしょうか? | ||||||||
|
投稿日時: 2003-06-24 19:48
おしい!!
Test1()で、DataSetをNewして、DataAdapterから読み込ませていますが、Test1()を抜けるとDataSetが消えてしまいます。その前にDataGridにバインドしなければなりません。『結果をDataGridにバインド』と書きましたが、結果の設定とバインドが別々になっているんですね。 #『結果の設定』を書かなかったという意味で、私のチョンボですね
どちらかというと、「Test1(DataGrid dg)」とし、Test1の中でデータの設定を終えてしまうか、「String Test1()」としてSQL文だけを作らせ、発行〜バインドは上でするか。
同じように、クエリを設定し、DataAdapterなどで取り込み、DataGridに送り込んでバインドします。 | ||||||||
|
投稿日時: 2003-06-24 20:17
早々のお返事、大感謝です。
早速Jittaさんが教えてくれたように、変更してみました! 怒られました☆(泣) 無効なデータ ソースが 'DataGrid1' に対して使用されています。有効なデータ ソースは、IListSource または IEnumerable を実装しなければなりません。 でもこれをクリアすればという、希望の光が見えました。 どうもありがとうございます! | ||||||||
|
投稿日時: 2003-06-25 08:30
失礼。私はDataTableを放り込んでいました。 | ||||||||
|
投稿日時: 2003-06-25 09:54
解決致しました。
また教えてください。 ありがとうございました! |
1