- PR -

DataGridViewへの検索結果の累積

1
投稿者投稿内容
にゃご
会議室デビュー日: 2006/06/17
投稿数: 10
投稿日時: 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
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-07-30 00:32
引用:

にゃごさんの書き込み (2006-07-29 19:00) より:

1回目の検索結果とマージ?とかを思いついたのですが、実際どうコードを書けばいいのかがわからずに詰まってしまっています。
 よろしくお願いいたします。_(_._)_


追加していくだけなら単純ですが、マージするとなると少しめんどくさいかも知れませんね。

ためしていませんが、
DataSetをクラスで持つか、DataGridView.DataSource から取り出した
DataSet の DataTable に対して行を追加していけばいけると思います。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-07-31 12:04
連結しないで自分でセルに放り込んで行った方が作りやすそうな気がしましたが。
にゃご
会議室デビュー日: 2006/06/17
投稿数: 10
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)