----------------------------------------------------------------------- Imports System.Data.SqlClient       : (システムが自動生成したコードは省略)       : ' ---------------------------------------------------------- ' 商品IDをキーにテーブルを検索し、品名・仕入先・在庫数を表示 ' リレーション版 ' ---------------------------------------------------------- Private Sub btnSearch_Click _ (ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles btnSearch.Click Dim strSql As String ' 接続文字列を設定 strSql = _ "SELECT 商品_mr.商品ID, 商品_mr.品名, 商品_mr.仕入先ID, " & _ "仕入先_mr.仕入先名, 在庫_mr.在庫 " & _ "FROM 仕入先_mr INNER JOIN 商品_mr ON 仕入先_mr.仕入先ID = 商品_mr.仕入先ID " & _ "INNER JOIN 在庫_mr ON 在庫_mr.商品ID = 商品_mr.商品ID " & _ "WHERE 商品_mr.商品ID = " ' テキストボックスの未入力チェック If Me.txtItemId.Text = "" Then MessageBox.Show("商品IDを入力してください。", _ "入力エラー", MessageBoxButtons.OK) Else ' パラメータを付け足して検索を実行 strSql = strSql & txtItemId.Text Search(strSql) End If End Sub ' ------------------------------------------------ ' 実際の検索処理(引数はSQL文字列と検索パラメータ) ' ------------------------------------------------ Private Sub Search(ByVal strSql As String) Dim objConnect As New SqlConnection Dim objCommand As New SqlCommand Dim objDataReader As SqlDataReader Try ' 接続文字列の設定 objConnect.ConnectionString = _ "Persist Security Info=False;Integrated Security=SSPI;database=db1001ya;server=localhost" ' コネクションの設定 objCommand.Connection = objConnect ' 接続を開く objConnect.Open() ' SQLの設定 objCommand.CommandText = strSql ' 検索処理(結果をデータリーダに受け取る) ' 取得するレコードは常に1件なので、パラメータにCommandBehavior.SingleRowを指定 objDataReader = objCommand.ExecuteReader(CommandBehavior.SingleRow) If objDataReader.Read() = True Then ' 検索成功 lblItemName.Text = objDataReader("品名") lblSupplierId.Text = objDataReader("仕入先ID") lblSupplierName.Text = objDataReader("仕入先名") lblNumStock.Text = objDataReader("在庫") Else ' 検索失敗 MessageBox.Show( _ "該当する商品が見つかりません。", "検索エラー", MessageBoxButtons.OK) End If Catch objExcept As Exception ' 例外処理 MessageBox.Show(objExcept.ToString, "DBエラー", MessageBoxButtons.OK) Finally ' データリーダを閉じる If Not objDataReader Is Nothing Then objDataReader.Close() End If ' 接続を閉じる If Not objConnect Is Nothing Then objConnect.Close() End If End Try End Sub -----------------------------------------------------------------------