• ベストアンサー

AOD + VC++でのデータ抽出

ここで質問していいのかわかりませんが。 ADO+VS2005(C++)のフォームアプリケーションで、あるテーブルの特定の条件の値のみ抽出したいのですが、やり方がいまいちわかりません。 DataSet->(テーブル名)->Select という方法があると見たんですけど、引数の設定がわかりません。 整数を入力すると、"Stringに変換できない"とはじかれ、文字列を入力しても同じくはじかれます。 ADO+VS2005(C++)についていいサイトとかないですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.5

# 教えてクンでも良いですが少しはご自分で調べるといった努力も # 大切ですよ … 技術者であるならば BindingSourceのCountプロパティ

J-MAX
質問者

お礼

ご回答ありがとうございます。 返事が遅れて申し訳ありません。 今回初めてデータベースというものに挑戦し、いろいろと教えてくださる皆さんに甘えてしまいました。 次回からは気をつけます。 希望していた動作ができたので、これで質問を締め切らせてもらいます。 ありがとうございました。

その他の回答 (4)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.4

> 整数を入力すると、"Stringに変換できない"とはじかれ、 > 文字列を入力しても同じくはじかれます。 どのようなコードまたは操作を行った場合に表示されるのでしょう BaindingSourceのFilterプロパティに抽出条件を設定しましょう テーブルのID列が 100以上の項目を抽出する場合 xxxBindingSource.Filter = "ID>=100" といった具合です

J-MAX
質問者

お礼

ご回答ありがとうございます。 Filterで抽出できました。 BindingSourceを使うのが盲点でした... 質問を重ねるようで申し訳ないのですが 抽出したデータ数をカウントするにはどうしたらいいでしょうか。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.3

たぶん ADO.NETで行っている状態だと思います BindingSourceやTableAdapterなどを使っている状態であれば ・・・ Expressエディッションだとウィザードが起動しないかも知れません

J-MAX
質問者

お礼

ご回答ありがとうございます。 すでにADO.NETを使っていたんですね。 データの抽出は未だにわからないので、そちらの方もお願いします。

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

プロジェクトの中にMDBファイルは存在しますか? IDEのメニューから プロジェクト > すべてのファイルを表示 を行い ソリューションエクスプローラの中に MDBファイルが淡色で表示されるか確認します ソリューションフォルダーに無いのであればコピーしておきます 次にその淡色表示のMDBファイルを選択して プロジェクト > プロジェクトに含める を実行 ウイザードが起動され データセットが構築されます テーブルの選択や SQLでの選択を指示します フォームのDataGridViewを選択して右肩のスマートアイコンをクリック 『DataGridViewタスク』といったポップアップが表示されます ここのデータソースの選択を開いて『他のデータソース』をクリック プロジェクト データソースをクリック 先のウィザードで生成したDataSetをクリック フォームに新たに作成された XXXDataSourceBindingSource といった項目があるのでこれを選択 プロパティウィンドウの『DataMember』を選択 右側のドロップダウンボタンをクリック ウィザードで指示した項目を選択 といった手順でデータの表示が出来ると思います

J-MAX
質問者

お礼

ご回答ありがとうございます。 MDBファイルをプロジェクトに追加しても、ウイザードが起動しません。 というか、淡色になってません。 ちなみに今までは サーバーエクスプローラで接続の追加、Accessデータベースファイルを使っていました。 これでADO.NETということなのでしょうか?

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

ADOでないといけないのでしょうか? フォームアプリということは C++/CLIで組まれているのですか ADO.NETのほうが親和性が高いのですが ・・・ ADOですとラッパーを通す分若干処理能力が落ちそうです System::Data::OleDbやSysytem::Data::SqlClientの名前空間にADO.NETで使うオブジェクト群があります 現状どのようのコードを書いているのかを支障の無い範囲で投稿してみましょう

J-MAX
質問者

お礼

回答ありがとうございます。 ADO.NETを使いたいのですが、どうすればADO.NETが使えるのかわかりませんでした。 なのでやむを得ずCLRで書いてます。 コードはどの部分を提示すればいいのかわからないんですが・・・ 概要としては textBox1に入力された文字列を、bottan1がクリックされたら、DBから検索し、DataGridViewに表示させたいのです。

J-MAX
質問者

補足

いい忘れていましたが、DBはSQLではなくAccessを使用したいと思います。 ただ、無理にAccessじゃなくてもいいので、SQLを前提にしてもらってもかまわないです。

関連するQ&A