VB.NET:SQLで取得したデータをイミディエイトウィンドウに表示する例(DataReader)

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()
  

以上

コメント

タイトルとURLをコピーしました