マスターテーブル検索 SQL Server

Visual Basic ADO.NET [Community Express]

商品マスターテーブル検索

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

SQL Server Express の接続文字列については、SQL Server Express 接続文字列自動生成 を参考にしてください。

サンプルプログラム

商品検索画面
  1. あらかじめ System.Data.SqlClient とSystem.Configuration をインポート
  2. メニューの[プロジェクト]→[参照の追加]をクリックして、System.Configurationを追加
  3. 入力した商品コードのエラーチェックをし、エラーがあればメッセージボックスにエラー表示
  4. 例外をキャッチしたときも、例外をメッセージボックスに表示
  5. エラーがなければ、商品テーブルから該当レコードを取得
  6. 取得したレコードデータを、ラベルのTextプロパティに代入
Option Strict On
Imports System.Data.SqlClient
Imports System.Configuration    ' 参照の追加で System.Configurationを追加

Public Class RetrievalIntro

    '-------------------------------------------------------------
    ' ■ 検索ボタンクリック処理 ■
    '-------------------------------------------------------------
    Private Sub BtnRetrieval_Click(sender As Object,e As 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