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
|
プログラミング道
|
プログラミング掲示板
分類:[.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