VB.NETでSQL文を発行してデータを取得し、取得したデータをイミディエイトウィンドウに表示するサンプルプログラムを覚書。
[参考資料]
DataReader によるデータの取得 - ADO.NET
ADO.NET で DataReader を使用してデータを取得する方法について、サンプル コードで説明します。 DataReader は、バッファリングされないデータ ストリームを提供します。
以下にサンプルプログラムを記述。
DataReaderを使用したサンプルプログラム
以下にDataReaderを使用して発行したSQLの結果をイミディエイトウィンドウに表示するサンプルプログラムを記載。
Dim con As OleDb.OleDbConnection = New OleDb.OleDbConnection(My.Settings.NorthwindConnectionString)
con.Open()
Dim cmd As New OleDb.OleDbCommand("SELECT * FROM 運送会社", con)
Dim dr As OleDb.OleDbDataReader = cmd.ExecuteReader
If dr.HasRows Then
Do While dr.Read
Debug.Print(dr("運送コード").ToString + vbTab + dr("運送会社") + vbTab + dr("電話番号"))
Loop
Else
MsgBox("データなし")
End If
dr.Close()
con.Close()
注意点
データが0件だったかどうかはHasRowでチェックできるが、データ件数が何件なのかは、DataReaderでは取得できない。
DataReaderは、前に進むだけしかできないので先頭にカーソルを戻すことも不可。
最後まで読み込んでカウントをかけるか、別途件数を取得するための単一行を返すクエリーを実行して件数を取得するしかない。 例えばこんな感じ。
Dim con As OleDb.OleDbConnection = New OleDb.OleDbConnection(My.Settings.NorthwindConnectionString)
con.Open()
Dim CountCmd As New OleDb.OleDbCommand("SELECT count(*) from 運送会社", con)
Dim DataCount As Integer
DataCount = CountCmd.ExecuteScalar
If DataCount = 0 Then
Exit Sub
Else
MsgBox(String.Format("データ件数は、{0}件です。", DataCount) + _
vbCrLf + "データをイミディエイトウィンドウに表示します。", MsgBoxStyle.Information)
Dim cmd As New OleDb.OleDbCommand("SELECT * FROM 運送会社", con)
Dim dr As OleDb.OleDbDataReader = cmd.ExecuteReader
Do While dr.Read
Debug.Print(dr("運送コード").ToString + vbTab + dr("運送会社") + vbTab + dr("電話番号"))
Loop
dr.Close()
End If
con.Close()
以上
コメント