得意先テーブルアクセスクラス
得意先テーブルアクセスクラスは、販売管理データベースアクセスクラスの派生クラスとして、次のメンバーを実装します。
- 定数・コンストラクタ
- 得意先マスター表から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