VB.NET・ADO.NET・oracleを使用して顧客管理のシステムを作成しています。
VBのイベントプロシージャでSQLを作成し検索を行いデータを取得するのです
が1度目はうまく検索できるのですが検索のフォームに戻りもう一度検索をす
るのですが前の検索のデータが残ったまま2回目の検索結果が一回目の検索
結果に追加されるという状態になってしまいます。
なにか良いコードはないでしょうか?
実際のコードが無いので、なんとも・・・
1度目の結果を表示しているのは、何を使って表示
しているのですが?
それは、連結型のコントロールですか?
それとも、プログラムで取得したデータを1件づつ
コントロールに追加して表示させているのですか?
それと・・・.NET Framework は、1.1?
VB.NET は 2003 ですか?
ADO.NET のオラクル用のクラスを用いたコーディング
になっているんですよネ?
以上。
説明足らずですみません。
表示はデータグリッドを使用して一覧表形式で表示させています。
VB.NETは2002を使用しています。
ADO.NETはオラクルを使用したコーディングになっているつもりです。
コードは、
検索フォーム
Try
strSql = ""
'ComboBoxの内容が不正でないかを判断する
If CInt(kcode1.Text) > CInt(kcode2.Text) Then
'メッセージボックスを表示
MsgBox("指定した値は間違っています", MsgBoxStyle.OKOnly + MsgBoxStyle.Exclamation, "注意")
kcode1.Focus()
Exit Sub
End If
'ComboBoxの内容をtextで取得
If Trim(kcode1.Text) <> "" And Trim(kcode2.Text) <> "" Then
'SQL文をstrSqlに格納する
strSql = "SELECT 顧客コード,顧客会社名,顧客郵便番号1,顧客住所1,顧客電話番号1"
strSql &= " FROM 顧客管理マスタ WHERE"
strSql &= " 顧客コード BETWEEN " & Trim(kcode1.Text) & " and " & Trim(kcode2.Text) & " and "
'顧客会社名が空白でないかを判断する
If kname.Text <> "" Then
strSql &= " 顧客会社名 Like '%" & Trim(kname.Text) & "%' and"
End If
'得意先か一般かを判断する
If tokuiRB.Checked = True Then
strSql &= " 顧客状況コード = '1'"
Else
strSql &= " 顧客状況コード = '2'"
End If
End If
fkmasu.Olekokyaku.SelectCommand.CommandText = strSql
fkmasu.Olekokyaku.Fill(fkmasu.Ds21, "顧客管理マスタ")
'次のフォームを表示
fkmasu.Show()
Me.Hide()
Catch err As Exception
MsgBox("エラー", MsgBoxStyle.OKOnly, "注意")
End Try
表示フォームから検索フォームに戻るコードは
fmken.Show()
Me.Hide()
しか書いていません。
検索結果表示フォームの検索フォームに戻るイベントでdatasetの内容をclear
することで解決しました。