DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DBからデータの取得について

  • 題名: DBからデータの取得について
  • 著者: みけんにしわ
  • 日時: 2009/03/30 11:07:37
  • ID: 24298
  • この記事の返信元:
    • (なし)
  • この記事への返信:
    • (なし)
  • ツリーを表示
環境/言語:[XP NET Framework2.0]
分類:[.NET]

こんにちは。

いま、DBからデータを取得する処理を作っているのですが、
よくわからない現象がおきており困っております。


条件を選択しボタンを押すと、データを取得し表示するようなプログラムなのですが、
一度目は正常にでるのですが、条件を変えて二度目を出すとエラーになります。

デバックで確認すると、取得用に用いているグローバルのdatatable変数の
取得item数が増えていっていました。

原因、対応の方法をご存知の方、ご教授お願いします。
根本的に今の方法に問題があれば、指摘お願いします。


取得部分は下記のようなソースになっており、下記結果から
取得したデータでとした場合に一度目はアイテム数が6個だったのに、
条件(SQL)を変えて実行するとアイテム数が8個になっていました。

取得時のフィールド名が
1度目のSQLがA、B、C、D、E、F
2度目のSQLがA、G、H、D、E、F
と二つ変えたので(B,C or G,H)その辺が原因かと思っているのですが、、、
よくわかっていません。

どうかよろしくお願いします。

***-取得処理-------------------------------------------------------****

'' 接続情報
Private sDBconnect As String 'DB接続子

'' アクセス変数
Private cnn As ADODB.Connection

'' 結果格納変数
Public dtResSql As New DataTable

'----------------
'取得処理
Public Function dbSelectSql(ByVal strSQL As String) As Integer
Dim da As New OleDbDataAdapter()

Try
'' レコードオブジェクト生成
Dim myrec As ADODB.Recordset
myrec = New ADODB.Recordset

' 初期化
dtResSql.Clear()

'' SQL発行
myrec.Open(strSQL, sDBconnect)

'' クラス変数に格納
da.Fill(dtResSql, myrec)

' 戻り値セット(レコード数)
dbSelectSql = myrec.Fields.Count

'' オブジェクト開放
myrec.Close()
myrec = Nothing

Catch ex As Exception
' 例外が発生した時の処理
Throw ex
End Try

End Function

DOBON.NET | プログラミング道 | プログラミング掲示板