- ベストアンサー
AOD + VC++でのデータ抽出
ここで質問していいのかわかりませんが。 ADO+VS2005(C++)のフォームアプリケーションで、あるテーブルの特定の条件の値のみ抽出したいのですが、やり方がいまいちわかりません。 DataSet->(テーブル名)->Select という方法があると見たんですけど、引数の設定がわかりません。 整数を入力すると、"Stringに変換できない"とはじかれ、文字列を入力しても同じくはじかれます。 ADO+VS2005(C++)についていいサイトとかないですか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
# 教えてクンでも良いですが少しはご自分で調べるといった努力も # 大切ですよ … 技術者であるならば BindingSourceのCountプロパティ
その他の回答 (4)
- redfox63
- ベストアンサー率71% (1325/1856)
> 整数を入力すると、"Stringに変換できない"とはじかれ、 > 文字列を入力しても同じくはじかれます。 どのようなコードまたは操作を行った場合に表示されるのでしょう BaindingSourceのFilterプロパティに抽出条件を設定しましょう テーブルのID列が 100以上の項目を抽出する場合 xxxBindingSource.Filter = "ID>=100" といった具合です
お礼
ご回答ありがとうございます。 Filterで抽出できました。 BindingSourceを使うのが盲点でした... 質問を重ねるようで申し訳ないのですが 抽出したデータ数をカウントするにはどうしたらいいでしょうか。
- redfox63
- ベストアンサー率71% (1325/1856)
たぶん ADO.NETで行っている状態だと思います BindingSourceやTableAdapterなどを使っている状態であれば ・・・ Expressエディッションだとウィザードが起動しないかも知れません
お礼
ご回答ありがとうございます。 すでにADO.NETを使っていたんですね。 データの抽出は未だにわからないので、そちらの方もお願いします。
- redfox63
- ベストアンサー率71% (1325/1856)
プロジェクトの中にMDBファイルは存在しますか? IDEのメニューから プロジェクト > すべてのファイルを表示 を行い ソリューションエクスプローラの中に MDBファイルが淡色で表示されるか確認します ソリューションフォルダーに無いのであればコピーしておきます 次にその淡色表示のMDBファイルを選択して プロジェクト > プロジェクトに含める を実行 ウイザードが起動され データセットが構築されます テーブルの選択や SQLでの選択を指示します フォームのDataGridViewを選択して右肩のスマートアイコンをクリック 『DataGridViewタスク』といったポップアップが表示されます ここのデータソースの選択を開いて『他のデータソース』をクリック プロジェクト データソースをクリック 先のウィザードで生成したDataSetをクリック フォームに新たに作成された XXXDataSourceBindingSource といった項目があるのでこれを選択 プロパティウィンドウの『DataMember』を選択 右側のドロップダウンボタンをクリック ウィザードで指示した項目を選択 といった手順でデータの表示が出来ると思います
お礼
ご回答ありがとうございます。 MDBファイルをプロジェクトに追加しても、ウイザードが起動しません。 というか、淡色になってません。 ちなみに今までは サーバーエクスプローラで接続の追加、Accessデータベースファイルを使っていました。 これでADO.NETということなのでしょうか?
- redfox63
- ベストアンサー率71% (1325/1856)
ADOでないといけないのでしょうか? フォームアプリということは C++/CLIで組まれているのですか ADO.NETのほうが親和性が高いのですが ・・・ ADOですとラッパーを通す分若干処理能力が落ちそうです System::Data::OleDbやSysytem::Data::SqlClientの名前空間にADO.NETで使うオブジェクト群があります 現状どのようのコードを書いているのかを支障の無い範囲で投稿してみましょう
お礼
回答ありがとうございます。 ADO.NETを使いたいのですが、どうすればADO.NETが使えるのかわかりませんでした。 なのでやむを得ずCLRで書いてます。 コードはどの部分を提示すればいいのかわからないんですが・・・ 概要としては textBox1に入力された文字列を、bottan1がクリックされたら、DBから検索し、DataGridViewに表示させたいのです。
補足
いい忘れていましたが、DBはSQLではなくAccessを使用したいと思います。 ただ、無理にAccessじゃなくてもいいので、SQLを前提にしてもらってもかまわないです。
お礼
ご回答ありがとうございます。 返事が遅れて申し訳ありません。 今回初めてデータベースというものに挑戦し、いろいろと教えてくださる皆さんに甘えてしまいました。 次回からは気をつけます。 希望していた動作ができたので、これで質問を締め切らせてもらいます。 ありがとうございました。