テーブルから1レコード取得
CommandオブジェクトのExecuteReaderメソッドで、テーブルから1レコードを取得するVB.NETのWeb版。
Command.ExecuteReader(CommandBehavior.SingleRow)
入力した社員コードのデータを社員テーブルから取得して、その結果を表示するプログラムを作成します。
コントロール | プロパティ | 設定値 |
---|---|---|
TxtSyainCode | - | - |
BtnSelect | Text | 検索 |
LblSyainSimei | - | - |
LblSyainKana | - | - |
LblMessage | BorderStyle | Ridge |
CommandオブジェクトのExecuteReaderメソッドを使ったWeb版。ExecuteReaderの引数には、CommandBehavior.SingleRowを指定します。
ソースリストの枠内をクリックすると全選択できます。
Imports System.Data.OleDb Public Class WebFormSelectOne Inherits System.Web.UI.Page Protected WithEvents Label1 As System.Web.UI.WebControls.Label Protected WithEvents TxtSyainCode As System.Web.UI.WebControls.TextBox Protected WithEvents BtnSelect As System.Web.UI.WebControls.Button Protected WithEvents Label2 As System.Web.UI.WebControls.Label Protected WithEvents Label3 As System.Web.UI.WebControls.Label Protected WithEvents LblSyainSimei As System.Web.UI.WebControls.Label Protected WithEvents LblSyainKana As System.Web.UI.WebControls.Label Protected WithEvents LblMessage As System.Web.UI.WebControls.Label #Region " Web フォーム デザイナで生成されたコード " ' 自動生成部分省略 #End Region '---------------------------------------------------------- ' ページロード処理 '---------------------------------------------------------- Private Sub Page_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load LblMessage.Text = "" End Sub '------------------------------------------------------------ ' 検索ボタンクリック処理:社員テーブルからレコード取得 '------------------------------------------------------------ Private Sub BtnSelect_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles BtnSelect.Click Dim con As New OleDbConnection() Dim cmd As New OleDbCommand() Dim dr As OleDbDataReader = Nothing Me.LblSyainSimei.Text = "" Me.LblSyainKana.Text = "" ' 社員コード未入力はエラー If Me.TxtSyainCode.Text = "" Then Me.LblMessage.Text = "社員コードが未入力です" Exit Sub End If Try ' 仮想アプリケーションルートパスを取得 Dim vPath As String = Request.ApplicationPath ' 仮想アプリケーションルートパスの物理パスを取得 Dim path As String = Server.MapPath(vPath) ' DB接続文字列の設定 con.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ path & "\sample.mdb" ' コネクションの設定 cmd.Connection = con ' SQL文の設定 cmd.CommandText = "SELECT 社員氏名, 社員カナ " cmd.CommandText &= "FROM 社員テーブル " cmd.CommandText &= "WHERE 社員コード = @code" ' DB接続オープン con.Open() ' SQL文パラメータの設定 cmd.Parameters.Add("@code", OleDbType.Char, 5) cmd.Parameters("@code").Value = Me.TxtSyainCode.Text ' 社員テーブルから該当社員IDのレコード読込 ' 取得レコードが1件の時は、 ' 引数にCommandBehavior.SingleRowを指定 dr = cmd.ExecuteReader(CommandBehavior.SingleRow) If dr.Read Then ' レコードが取得できた時の処理 Me.LblSyainSimei.Text = CStr(dr("社員氏名")) ' NULL値を許しているフィールドは、NULL値の判定をする If IsDBNull(dr("社員カナ")) Then Me.LblSyainKana.Text = "" Else Me.LblSyainKana.Text = CStr(dr("社員カナ")) End If Else ' レコードが取得できなかった時の処理 LblMessage.Text = "この社員コードは未登録です" Exit Sub End If Catch ex As Exception ' 例外が発生した時の処理 lblMessage.Text = ex.ToString Finally ' データリーダクローズ If Not dr Is Nothing Then dr.Close() End If ' DB接続クローズ If Not con Is Nothing Then con.Close() End If End Try End Sub End Class