- PR -

前回表示したデータもDataGridViewに重複表示してしまう

1
投稿者投稿内容
nanajiji
会議室デビュー日: 2008/10/01
投稿数: 7
投稿日時: 2008-10-13 13:05
visual basic 2008でADO.NETの接続型データアクセス方式で、WebからあるリストデータA(60行ぐらい)をデータ加工した上でいったんDBに格納後、Form上のDataGridViewに表示する方式でツールをリセットせずに続けて次のリストデータB(30行ぐらい)を表示すると前回表示したデータAの後ろ61行目からリストBが表示されてしまった。

このためリストAから次のリストBを格納する場合、DB内にある過去のデータを必ず@全削除してADB格納データ無しを確認してからからB新たにリストBを取り込み加工後DBを介してCDataGridViewに表示するように変更したのにも関らずデータAの後ろ61行目からリストBが表示されてしまう。

このようにリストBを表示する場合、リストAが重複表示しない方法をお教え願います。

@全削除 → DB格納データを全削除しました
 With cmd
  .CommandText = "select count(*) from tbl_Project"
   .Connection = con
 End With
 cmd.ExecuteNonQuery()

ADB残件数の確認 → 残RECOD= 0 を確認しました
 ni = cmd.ExecuteScalar()
 MessageBox.Show("残RECOD=" & ni)

BリストAおよび、リストBのDB書き込み例です
 If cmd.ExecuteScalar() = 0 And isGetOK Then
  ' データを登録する
  With cmd
   .CommandText = "insert into tbl_Project values('" & cl1 & "','" & cl2 & "',' 〜 ','" & clx & "')"
.Connection = con
End With
cmd.ExecuteNonQuery()

CDataGridViewに表示 
 ' C-1 DBのデータをDataGridViewに表示するために読み込む
   With cmd
    .CommandText = "select * from tbl_Project order by date desc"
    .Connection = con
   End With
   rdr = cmd.ExecuteReader()

  ' C-2 読み込んだデータをDataGridViewに表示する → ここで重複表示が発生??
   Do While rdr.Read()
     Dim rowData As String() = {rdr.GetString(0), rdr.GetString(1), 〜〜r.GetString(x)}
     DataGridView1.Rows.Add(rowData)
   Loop
Toshi
ベテラン
会議室デビュー日: 2007/09/18
投稿数: 68
お住まい・勤務地: 関東のどっか
投稿日時: 2008-10-13 15:19
こんにちわ〜
ちょっと全体が見えてないんですが、Windowsアプリケーションでいいんでしょうか?

WindowsAppなのであれば、事前に以前表示していたデータをクリアしてもだめですか?

コード:
  '以前の情報をクリアする  ← 追加
   DataGridView1.Rows.Clear() 
  ' C-2 読み込んだデータをDataGridViewに表示する → ここで重複表示が発生?? 
   Do While rdr.Read() 
     Dim rowData As String() = {rdr.GetString(0), rdr.GetString(1), 〜〜r.GetString(x)} 
     DataGridView1.Rows.Add(rowData) 
   Loop

nanajiji
会議室デビュー日: 2008/10/01
投稿数: 7
投稿日時: 2008-10-13 17:45
<Toshiさん>...(^o^)/~~
ありがとうございます。
返信コメントにもあったのですが、Windowsアプリケーションとして作成してます。
また、指導どおり《 DataGridView1.Rows.Clear() 》を追加することで『重複表示は解消』することが出来ました。

ありがとうございました。<(_ _)>

・本件は解決しました。
1

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