none
「WHERE」 の挿入の仕方について RRS feed

  • 質問

  • [名前] [年齢] [電話番号] といった列をもつテーブルをDataGridViewにて表示させています。

    そこに、GROUP BY でまとめた年齢 をコンボボックスに挿入し、選択された状態で検索を実行すると

    SELECT * FROM table  WHERE 年齢 = 'コンボ.Text'

    の内容がDataGridViewで表示されるようにしたいのですが、WHERE をどのプロパティから挿入できるのかがわかりません。

    アダプター内の FillメソッドのプロパティにcommandTextというSELECT文が書かれた箇所があるのですが、そこを直接書き換える方法はないでしょうか?

    イメージとしましては

    ○○○○.×××× = "SELECT * FROM table WHERE..."

    のようにできればとてもありがたいです。

    ほかにもわかりやすい方法があればぜひともご教授よろしくお願いします。

    2006年6月30日 0:20

すべての返信

  • アダプターに (WHERE 年齢= ?)を含んだクエリを作成し、Adapter.method(conboBox.Text)という方法で解決しました。

    失礼しました。

    2006年6月30日 6:17
  • こんにちは。

    1. まず対応するデータセットデザイナを開いてください。
    2. TableAdapterが表示されているはずですから右クリックして[追加]-[クエリ]
    3. クエリを定義します。"SELECT * FROM table  WHERE 年齢 = @age" とします。クエリの名前はFillByAgeとでもしてください。
    4. 年齢のコンボボックスの SelectIndexChanged イベントハンドラで、TableAdapter名.FillByAge(DataSet名, comboBox1.Text)

    で実現できると思います。

    2006年6月30日 6:17