- - PR -
DataGridViewへの検索結果の累積
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-07-29 19:00
いつもお世話になっております。VB2005でWindowsプログラムを作っています。
いろいろやっていたのですが)下記のところで詰まってしまいました。何かよいお知恵をお借りできないでしょうか? 1.データベースの検索結果をDataGridViewに表示する。 2.次の回の検索結果を1のDataGridViewに追加(累積)してだす。 検索画面には、『累積する(チェックボックス)』があり、それにチェックされている場合は、DataGridViewに累積し、そうでない場合はその回の検索結果だけ表示したいのです。 1回目の検索結果とマージ?とかを思いついたのですが、実際どうコードを書けばいいのかがわからずに詰まってしまっています。 よろしくお願いいたします。_(_._)_ --今のコード(これでは累積できない・・・)-------------- Dim ds As DataSet Dim dt As New DataTable Dim wkDataSet As New DataAccess 'データを取ってくるクラス ds = wkDataSet.GetSerarchData(検索条件1,検索条件2,・・・) BindingSource1.DataSource = ds BindingSource1.DataMember = "data1" 'データグリッドとの連結 DataGridView1.DataSource = BindingSource1 'BindingNavigatorとの連結 Me.BindingNavigator1.BindingSource = Me.BindingSource1 | ||||
|
投稿日時: 2006-07-30 00:32
追加していくだけなら単純ですが、マージするとなると少しめんどくさいかも知れませんね。 ためしていませんが、 DataSetをクラスで持つか、DataGridView.DataSource から取り出した DataSet の DataTable に対して行を追加していけばいけると思います。 | ||||
|
投稿日時: 2006-07-31 12:04
連結しないで自分でセルに放り込んで行った方が作りやすそうな気がしましたが。
| ||||
|
投稿日時: 2006-07-31 13:19
かるあ様、田中様ありがとうございます。_(_._)_
ひきつづきごそごそした結果、なんとか希望に近い結果を得ることができるようになりました。 結局、モジュール変数でデータセットとデータテーブルを用意し、そこに累積するようにしました。 --今のコード(とりあえず累積できた・・・)-------------- Dim ds As DataSet Dim dt As New DataTable Dim wkDataSet As New DataAccess 'データを取ってくるクラス ds = wkDataSet.GetSerarchData(検索条件1,検索条件2,・・・) If wkRuiseki Then '累積チェックの結果 dtSave.Merge(ds.Tables("data1")) 'dtSaveはモジュールで宣言 Else dtSave.Clear() dtSave.Merge(ds.Tables("data1")) End If BindingSource1.DataSource = dsSave BindingSource1.DataMember = "dataAll" 'データグリッドとの連結 DataGridView1.DataSource = BindingSource1 'BindingNavigatorとの連結 Me.BindingNavigator1.BindingSource = Me.BindingSource1 ------------------------------------ ※きっともっとよい方法があるんだろうなぁ〜 でも、今はこれでせいいっぱい(;_;) [ メッセージ編集済み 編集者: にゃご 編集日時 2006-07-31 13:34 ] |
1