DBアクセス基本クラス(レコード検索)[VB 2013]

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

   やさしいVB 2010 / 2008 ADO.NET

DBアクセス基本クラスにレコード検索に必要なメンバーを実装します。

レコード検索関連メンバー

クラス図

レコード検索に必要なメンバーなDBアクセス基本クラスのメンバーは次のようになります。

  • 【レコード取得メソッド】テーブルアクセス処理を行い、主キー値、テーブル名、キー列名を引数として受け取る
  • 【接続関連プロパティ設定 】DBをオープンするための設定です。

注意:レコード検索に必要なメンバーのみの実装です。

Option Strict On
Imports System.Data.SqlClient
Imports System.Configuration  '[参照の追加]から追加

'////////// 基本クラス:sampleDBアクセスクラス //////////
Public MustInherit Class ClsSampleDBIO

  '====================================================================
  ' 機能:コンストラクタ
  ' 引数:なし
  '====================================================================
  Public Sub New()

      MyBase.New()

  End Sub

  '********************************************************************
  ' 機能:引数に指定したテーブルのキー値のレコードを取得する
  ' 引数:テーブル名
  ' 引数:キー列名
  ' 引数:主キー値
  ' 戻値:取得したレコード
  ' 補足:テーブル名の主キー列はNChar型とする
  '******1*********2*********3*********4*********5**********6*********7
  Public Function GetKeyData(ByVal TableName As String, _
                             ByVal KeyField As String, _
                             ByVal KeyValue As String) _
                             As DataTable

      Dim retDt As New DataTable    'リターン値

      '---<< テーブルからレコード取得 >>---
      Using con As New SqlConnection
          Using cmd As New SqlCommand
              ' 接続関連プロパティ設定
              Me.SetConnection(con, cmd)

              ' SQL文設定
              cmd.CommandText = "SELECT * FROM " & TableName & _
                  " WHERE " & KeyField & " = @KeyValue"

              ' SQL文の引数設定
              cmd.Parameters.Clear()
              ' パラメータの実際のサイズからデータ長を推論
              cmd.Parameters.Add("@KeyValue", SqlDbType.NChar)
              ' コマンド引数に値を設定
              cmd.Parameters("@KeyValue").Value = KeyValue

              ' レコード取得
              Dim da As New SqlDataAdapter
              da.SelectCommand = cmd
              da.Fill(retDt)

          End Using
      End Using

      ' ◆戻値を設定してリターン
      Return retDt

  End Function

  '********************************************************************
  ' 機能:接続関連プロパティ設定
  ' 引数:参照 SqlConnectionオブジェクト
  ' 引数:参照 SqlCommandオブジェクト
  ' 戻値:なし
  '******1*********2*********3*********4*********5**********6*********7
  Public Sub SetConnection(ByRef con As SqlConnection, ByRef cmd As SqlCommand)

      Dim settings As ConnectionStringSettings

      ' 接続文字列をapp.configファイルから取得
      settings = ConfigurationManager.ConnectionStrings _
          ("AdoNet.My.MySettings.sampleDBConStr")

      If settings Is Nothing Then
          ' 接続文字列取得エラー
          Throw New Exception("app.configに未登録")
      Else
          ' 接続文字列の設定
          con.ConnectionString = settings.ConnectionString
          ' SqlCommand.Connectionプロパティの設定
          cmd.Connection = con
      End If

  End Sub

End Class



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