得意先テーブルアクセスクラス
得意先テーブルアクセスクラスは、販売管理データベースアクセスクラスの派生クラスとして、次のメンバーを実装します。
- 定数・コンストラクタ
- 得意先マスター表から1レコード削除するメソッド
- 得意先マスター表の1レコードを更新するメソッド
- 得意先マスター表へ1レコードを追加するメソッド
'%%%%%%%%%% 得意先マスターテーブルアクセスクラス %%%%%%%%%%%% Public Class ClsTokuisakiTableIO Inherits ClsHanbaiKanriDBIO '--------------------< 定数メンバー>-------------------- Protected Const TABLE_NAME As String = "得意先マスター表" Protected Const KEY_FIELD As String = "得意先コード" '--------------------< 変数メンバー>-------------------- 'Protected tCodeValue As String ' 得意先コード 'Protected tNameValue As String ' 得意先名称 'Protected tJushoValue As String ' 得意先住所 'Protected tYuBangoValue As String ' 得意先郵便番号 '======================================================= ' 機能:コンストラクタ ' 引数:なし '======================================================= Public Sub New() ' 最初に基本クラスのコンストラクタを呼び出す MyBase.New(TABLE_NAME, KEY_FIELD) End Sub '******************************************************* ' 機能:得意先マスター表へ1レコード追加するメソッド ' 引数:追加する得意先マスター表データ ' 戻値:なし '******************************************************* Public Sub InsertRecord(tokuisaki As TokuisakiData) ' トランザクション開始() Using tran As New TransactionScope Using con As New SqlConnection Using cmd As New SqlCommand ' DBを開く ClsHanbaiKanriDBIO.OpenDB(con, cmd) ' 【得意先マスター表に追加】 ' SQL文の生成 cmd.CommandText = "INSERT INTO " & _ TABLE_NAME & "(" & KEY_FIELD & _ ", 得意先名称, 郵便番号, 得意先住所) " & _ "VALUES(@tCode, @tName, @tYuBango, @tJusho)" ' SQL文の引数設定 cmd.Parameters.Clear() cmd.Parameters.Add("@tCode", SqlDbType.NChar, 4) cmd.Parameters.Add("@tName", SqlDbType.NVarChar, 40) cmd.Parameters.Add("@tYuBango", SqlDbType.NChar, 7) cmd.Parameters.Add("@tJusho", SqlDbType.NVarChar, 50) ' 引数に値を設定 cmd.Parameters("@tCode").Value = tokuisaki.tCode cmd.Parameters("@tName").Value = tokuisaki.tName cmd.Parameters("@tYuBango").Value = tokuisaki.tYuBango cmd.Parameters("@tJusho").Value = tokuisaki.tJusho ' 得意先マスター表へ追加 Dim retInsertCount As Integer ' リターン値 retInsertCount = cmd.ExecuteNonQuery() ' 戻り値が1以外なら例外をスロー ' 自動的にロールバックされる If Not retInsertCount = 1 Then Throw New DBIOException _ ("得意先マスター表への追加失敗") End If End Using End Using ' 正常にレコード追加完了 ' トランザクション完了(コミット) tran.Complete() End Using End Sub '******************************************************* ' 機能:得意先マスター表の1レコードを更新するメソッド ' 引数:更新する得意先データ ' 戻値:なし '******************************************************* Public Sub UpdateRecord(tokuisaki As TokuisakiData) ' トランザクション開始 Using tran As New TransactionScope Using con As New SqlConnection Using cmd As New SqlCommand ' DBを開く ClsHanbaiKanriDBIO.OpenDB(con, cmd) ' 【得意先マスター表を更新】 ' SQL文の生成 ' 注:他でマスター更新をする可能性があれば、 ' 更新日時や全項目のデータ変更チェックをする cmd.CommandText = "UPDATE " & TABLE_NAME & _ " SET 得意先名称=@tName, " & _ "郵便番号=@tYuBango, " & _ "得意先住所=@tJusho " & _ "WHERE 得意先コード=@tCode" ' SQL文の引数設定 cmd.Parameters.Clear() cmd.Parameters.Add("@tCode", SqlDbType.NChar, 4) cmd.Parameters.Add("@tName", SqlDbType.NVarChar, 40) cmd.Parameters.Add("@tYuBango", SqlDbType.NChar, 7) cmd.Parameters.Add("@tJusho", SqlDbType.NVarChar, 50) ' 引数に値を設定 cmd.Parameters("@tCode").Value = tokuisaki.tCode cmd.Parameters("@tName").Value = tokuisaki.tName cmd.Parameters("@tYuBango").Value = tokuisaki.tYuBango cmd.Parameters("@tJusho").Value = tokuisaki.tJusho ' 得意先マスター表を更新 Dim retUpdateCount As Integer ' リターン値 retUpdateCount = cmd.ExecuteNonQuery() ' 戻り値が1以外なら例外をスロー ' 自動的にロールバックされる If Not retUpdateCount = 1 Then Throw New DBIOException _ ("得意先マスター表の更新失敗") End If End Using End Using ' 正常にレコード更新完了 ' トランザクション完了(コミット) tran.Complete() End Using End Sub '******************************************************* ' 機能:得意先マスター表を削除するメソッド ' 引数:削除する得意先コード ' 戻値:なし '******************************************************* Public Sub DeleteRecord(tCode As String) ' トランザクション開始 Using tran As New TransactionScope Using con As New SqlConnection Using cmd As New SqlCommand ' DBを開く ClsHanbaiKanriDBIO.OpenDB(con, cmd) ' 【得意先マスター表から削除】 ' SQL文の生成 cmd.CommandText = "DELETE FROM " & TABLE_NAME & _ " WHERE " & KEY_FIELD & " = @tCode" ' SQL文の引数設定 cmd.Parameters.Clear() cmd.Parameters.Add("@tCode", SqlDbType.NChar, 4) ' 引数に値を設定 cmd.Parameters("@tCode").Value = tCode ' 得意先マスター表から削除 Dim retDeleteCount As Integer ' リターン値 retDeleteCount = cmd.ExecuteNonQuery() ' 戻り値が1以外なら例外をスロー ' 自動的にロールバックされる If Not retDeleteCount = 1 Then Throw New DBIOException _ ("得意先マスター表から削除失敗") End If End Using End Using ' 正常にレコード更新完了 ' トランザクション完了(コミット) tran.Complete() End Using End Sub End Class