VB.NET Tips SqlDataReaderを変数+文字で参照する記述方法
photo by digi / Jeroen
データベースに接続し、ExecuteReaderでSqlDataReader へ結果を返しRecordsetの先頭から1行づつ読み取ります。
この処理の過程で、普通に値を得るには、
Dim RS As System.Data.SqlClient.SqlDataReader
Dim hCommand As System.Data.SqlClient.SqlCommand
'データベース接続処理
Call C_ADO_Connect.ADO_Connect()
hCommand.CommandText = "SELECT * FROM hoge"
RS = hCommand.ExecuteReader()
hCommand.Dispose()
While (RS.Read())
'Hoge_nameへ代入 ここです!
Hoge_name = RS!hoge_name
End While
RS.Close()
'データベース切断処理
Call C_ADO_Connect.ADO_Close()
こんな感じで、”RS!テーブル項目名”で取得します。
クラスにコードを振り分けて、クラス側で処理させたい時、テーブル名をクラス側のプロシージャへ引数で渡し、そのテーブル名を使用して、SqlDataReaderからテーブル名+文字で参照する場合は、どう記述すれば良いのでしょうか?
Public Sub db_insert(ByVal TableName As String)
Dim RS As System.Data.SqlClient.SqlDataReader
Dim hCommand As System.Data.SqlClient.SqlCommand
'データベース接続処理
Call C_ADO_Connect.ADO_Connect()
hCommand.CommandText = "SELECT * FROM hoge"
RS = hCommand.ExecuteReader()
hCommand.Dispose()
While (RS.Read())
'Hoge_nameへ代入 ここです!
Hoge_name = RS(TableName & "_name")
End While
RS.Close()
'データベース切断処理
Call C_ADO_Connect.ADO_Close()
End Sub
このように、”RS!~”ではなく、”RS(~)”で参照できます。
たまに、記述方法を忘れちゃうんですよね……
関連するエントリー
- None Found
