社員マスター更新 [VB]

Visual Basic ADO.NET [Community Express]

社員マスターレコード更新クラスの実装

DBアクセス基本クラスに、社員マスターテーブルのレコード更新に必要なメンバーを実装しますが、社員マスターテーブル検索と同じなので、追加メンバーはありません。

サンプルプログラム

更新クラス図

レコード更新に必要なメンバーなDBアクセス基本クラスのメンバーは、レコード検索と同様になります。

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

App.config ファイル connectionString の name属性の既定値は長すぎるので、"販売管理ConString"に変更しました。

【注意】レコード検索と同じメンバーなので、新規に追加するメンバーはありません。

社員マスター表
Key 列名 データ型 NULLを許容
社員コード nchar(5) しない
社員氏名 nvarchar(20) しない
社員カナ nvarchar(40) しない
部署コード nchar(4) しない
更新日時 datetime しない
Option Strict On
Imports System.Data.SqlClient
Imports System.Configuration  '[参照の追加]から追加

'////////// 基本クラス:販売管理DBアクセスクラス //////////
Public MustInherit Class ClsHankanDBIO

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

      MyBase.New()

  End Sub

  '********************************************************************
  ' 機能:引数に指定したテーブルのキー値のレコードを取得する
  ' 引数:テーブル名
  ' 引数:キー列名
  ' 引数:主キー値
  ' 戻値:取得したレコード
  ' 補足:テーブル名の主キー列はNChar型とする
  '******1*********2*********3*********4*********5**********6*********7
  Public Function GetKeyData(TableName As String, _
                             KeyField As String, _
                             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("販売管理ConString")

      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