得意先マスターアクセスクラスの実装
販売管理データベースアクセス基本クラスから派生した得意先マスターアクセスクラスのレコード追加・更新・削除関連のメンバーを実装します。
クラスメンバー
- コンストラクタ(引数なし)
- 1レコード追加メソッド(引数:得意先データ構造体)
得意先データ構造体は得意先基本クラスの直前に宣言してあります。
Public Structure TokuisakiData Public tCode As String ' 得意先コード Public tName As String ' 得意先名称 Public tJusho As String ' 得意先住所 Public tYuBango As String ' 得意先郵便番号 End Structure
Key | 列名 | データ型 | NULLを許容 |
---|---|---|---|
● | 得意先コード | nchar(4) | しない |
郵便番号 | nchar(7) | しない | |
得意先名称 | nvarchar(40) | しない | |
得意先住所 | nvarchar(50) | しない |
ソースリストの枠内をクリックすると全選択できます。
Option Strict On Imports System.Data.SqlClient Imports System.Transactions ' [参照の追加]で追加 '/////////////// 得意先マスターアクセスクラス /////////////// Public Class ClsTokuisakiTableIO Inherits ClsHanbaiKanriDBIO '--------------------< 定数メンバー >-------------------- Protected Const TABLE_NAME As String = "得意先マスター表" Protected Const KEY_FIELD As String = "得意先コード" '========================================================== ' 機能:コンストラクタ ' 引数:なし '========================================================== Public Sub New() ' 最初に基本クラスのコンストラクタを呼び出す MyBase.New(TABLE_NAME, KEY_FIELD) End Sub '********************************************************** ' 機能:得意先マスター表に1レコード追加するメソッド ' 引数:追加する得意先マスター表データ ' 戻値:追加したレコード数 '******1*********2*********3*********4*********5**********6 Public Function InsertRecord _ (ByVal tokuisaki As tokuisakiData) As Integer Dim retInsertCount As Integer ' リターン値 ' トランザクション開始 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 ' 得意先マスター表へ追加 retInsertCount = cmd.ExecuteNonQuery() ' 1レコード追加以外なら例外をスロー ' コミットしなければ、自動的にロールバックされる If Not retInsertCount = 1 Then Throw New DBIOException("得意先マスター表への追加失敗") End If End Using End Using ' 1レコード追加なら正常(通常これしかありえない) ' トランザクション完了(コミット) tran.Complete() End Using ' ◆戻値を設定してリターン Return retInsertCount End Function End Class