社員マスターレコード更新クラスの実装
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