VBをはじめて一ヶ月のものです。
MDBから複数のデータを呼び出すにはどう記述するのが一般的なのか
わからないので質問させていただきます。
同じMDBから・・・
form_loadでDataGridView①にテーブル①
button1_clickでDataGridView②にテーブル②
button2_clickでDataGridView②にテーブル②’
テーブル②とテーブル②’は同じテーブルだが、別の行と列を表示
結果だけ観れば各イベントの時に↓のコード(VB中学校のデータベースから)
を入れれば動くのですが、
勉強のために皆様がどのようにやられているのか
教えて頂いてもよろしいでしょうか?
本を見ても個別に呼び出してるので各イベント毎が良いのでしょうか?
(初心者様の本だからかも知れませんが・・・)
'▼データ取得
Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Database\Animals.mdb")
Dim SQLCm As OleDbCommand = Cn.CreateCommand
Dim Adapter As New OleDbDataAdapter(SQLCm)
Dim Table As New DataTable
SQLCm.CommandText = "SELECT 説明 FROM T_目マスタ"
Adapter.Fill(Table)
'▼値の表示
DataGridView1.DataSource = Table
'▼後処理
Table.Dispose()
Adapter.Dispose()
SQLCm.Dispose()
Cn.Dispose()
目的にもよりますが、個別でもいいと思います。
> button1_clickでDataGridView②にテーブル②
> button2_clickでDataGridView②にテーブル②’
そもそもデータベースのデータは、随時更新されるものですよね?一般的には。
そしたらボタンを押した時点で最新の情報を取ってくる仕様を望まれる事が
多いです。
複数のデータを呼び出す目的とは関係なく、ボタン押下のタイミングで検索
に行く事が多いと思います。
まとめるとしたら、DataSource が1つで、DisplayMember で表示項目を
分けるとかかな。
でも、同時に テーブル② と テーブル②’を表示しないんだったら、
テーブル② の表示の時に必要ない テーブル②’の情報まで検索する事に
なるから、処理速度の観点からは無駄が生まれますよね。
ソースの共通化には役立つけど、どっちが優先度が高いかと言えば、
この場合は処理速度でしょう。
例に上げられた条件からなら私だったら、個別表示のコードを書くと思います。
同時に テーブル② と テーブル②’を表示するとかいう条件が付くと違う手法を
選択すると思います。
とくま様
ご回答有難うございました。
別のDataGridViewに同じテーブルの中身を表示することがないので
個別に書いていこうと思います。
質問が下手ですいません。
回答がこちらの希望する内容だったためとても満足しています。
ツイート | ![]() |