マスター表検索基本 [ADO.NET][VB 2013]

Visual Basic 2010/2008 やさしいADO.NET DBプログラム

   やさしいVB 2010 / 2008 ADO.NET

商品コードを入力して、検索ボタンを押すと、販売管理データベースの商品マスター表を検索して、そのレコードデータを画面に表示するプログラムを作成します。

商品マスター表検索

商品検索画面
  • 入力した商品コードのエラーチェックをし、エラーがあればメッセージボックスに表示
  • 例外をキャッチしたときも、例外をメッセージボックスに表示
  • エラーがなければ、商品テーブルから該当レコードを取得
  • 取得したレコードデータを、ラベルのTextプロパティに代入
Option Strict On
Imports System.Data.SqlClient
Imports System.Configuration    ' 参照の追加で System.Configurationを追加

Public Class RetrievalIntro

    '-------------------------------------------------------------
    ' ■ 検索ボタンクリック処理 ■
    '-------------------------------------------------------------
    Private Sub BtnRetrieval_Click(ByVal sender As System.Object, _
      ByVal e As System.EventArgs) Handles BtnRetrieval.Click

      ' 商品コード未入力ならエラー
      If TxtShohinCode.Text = Nothing Then
          MessageBox.Show("商品コードが未入力","エラー")
          Exit Sub
      End If

      ' 接続文字列をapp.configファイルから取得
      Dim settings As ConnectionStringSettings
      settings = _
          ConfigurationManager.ConnectionStrings("販売管理ConString")
      If settings Is Nothing Then
                  ' 接続文字列取得エラー
                  MessageBox.Show("app.configに未登録","接続文字列エラー")
          Exit Sub
      End If

      ' 商品マスター表からレコード取得
      Try
          Using con As New SqlConnection
              Using cmd As New SqlCommand
                  ' 接続文字列の設定
                  con.ConnectionString = settings.ConnectionString
                  ' SqlCommand.Connectionプロパティの設定
                  cmd.Connection = con
                  ' SQL文設定
                  cmd.CommandText = "SELECT * FROM 商品マスター表 " & _
                                    "WHERE 商品コード = @sCode"
                  ' SQL文の引数設定
                  cmd.Parameters.Clear()
                  ' パラメータの実際のサイズからデータ長を推論
                  cmd.Parameters.Add("@sCode",sqlDbType.NChar)
                  cmd.Parameters("@sCode").Value = TxtShohinCode.Text
                  ' レコード取得
                  Dim da As New SqlDataAdapter
                  Dim dt As New DataTable
                  da.SelectCommand = cmd
                  da.Fill(dt)
                  If dt.Rows.Count = 1 Then
                      ' レコードがあった時
                      LblShohinMei.Text = CStr(dt.Rows(0)("商品名称"))
                      LblHanbaiTanka.Text = CStr(dt.Rows(0)("販売単価"))
                  Else
                      ' レコードが無い時
                      LblShohinMei.Text = Nothing
                      LblHanbaiTanka.Text = Nothing
                      MessageBox.Show("データがありません","エラー")
                   End If

              End Using
          End Using

      Catch ex As Exception
          MessageBox.Show(ex.ToString, "【例外発生】")
      End Try

    End Sub

End Class

検索ボタンクリック処理で、エラーチェック、データアクセス処理、画面制御などすべてコーディングしています。プログラムの保守性を上げるために、ここからまずデータアクセス処理を関数化して分離します。


Copyright© やさしいVB2012/2010 ADO.NET. All rights reserved.