msnet_logp1.jpg
VB.NETでSQL文を発行してデータを取得し、取得したデータをイミディエイトウィンドウに表示するサンプルプログラムを覚書。

[参考資料]
・Microsoft Visual Studio 2005 ドキュメント
「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()
以上

スポンサードリンク

  

関連記事