none
クエリの追加で「基本クエリとは異なる新しいクエリが返すスキーマです。」とエラーが出ます。 RRS feed

  • 質問

  • Windows XP VB2005EEでWinアプリを開発中の初心者です。

     

    DataReaderを使ってデータベースから接続型でデータを編集しながら、空のデータテーブル(データセット内)に

    読込み、これをDataGridView に表示させ、正常に動作しています。お尋ねしたいのは、このBindingSource に

    クエリを追加したく「検索条件ビルダー」で設定して[OK]ボタンを押すと「基本クエリとは異なる新しいクエリが返

    すスキーマです。」とエラー表示され、前に進めず、やむなく[キャンセル]で中止する始末です。

    クエリの追加方法に何かの間違いがあるのでしょうか。よろしくご指導下さい。

     

    ちなみに、BindingSource.Filter = "項目名 = '鈴木'" のフィルターや BindingSource.Sort = "項目名" のソート

    を掛けても正常に動作します。

     

     

    2007年8月17日 2:00

すべての返信

  • ミコシ・モンタ さん、こんにちは
    ダッチです。

    検索条件ビルダにて作成したクエリは単一の値を返しませんか?
    単一の値とは取得内容が一つの列の値(項目名列)だけの場合などです。
    その場合は検索条件ビルダを使用しては作成することはできないと思います。

    変わりにデータセットのデザイナ画面から TableAdapter に対して右クリックして
    [クエリの追加(Q)...]を選択します。
    TableAdapter クエリの構成ウィザードが表示されますので、
    一度 [次へ] を選択して、「単一の値を返す SELECT」を選択すれば
    単一の結果を返すクエリを作成することができます。

     

    検索条件ビルダでは複数行を返す SELECT をサポートしているのだと思います。

    2007年8月18日 13:02
  • ダッチさん、いつもありがとうございます。

    ダッチさんご指摘の通り、「単一の値を返す」ことの実証を行っていましたが、クエリ実行ではエラーは出ませんが、

    各項目は全てNullと表示されます。これは、DataReaderを使ってデータベースから接続型で空のデータテーブルに

    読込みからで、検索条件ビルダ作成時は、何も読込まれていないからNUll値しか表示しないのかと思っていました。

     

    もう少し、実験を続けダッチさんの指摘を実証してみますが、とりあえず解答いただいたことにお礼を申し上げます。

    結果は必ずこのスレッドに報告いたします。取り急ぎお礼まで・・・・・・

    2007年8月20日 12:09