社員データ管理追加クラス[VB]

Visual Basic ADO.NET [Community Express]

社員データ更新クラスの実装

社員データ管理基本クラスから派生した社員データ管理追加クラスのメンバーを実装します。

サンプルプログラム

追加クラス図

社員データ管理追加クラスは、社員データ基本クラスを継承したクラスで、次のメンバーを実装します。

  • コンストラクタ(引数:なし)
  • 社員コードプロパティ
  • CreateDataRowメソッドで、社員マスターのデータ行(DataRow型)を生成
  • 1レコード追加メソッド
社員マスター表
Key 列名 データ型 NULLを許容
社員コード nchar(5) しない
社員氏名 nvarchar(20) しない
社員カナ nvarchar(40) しない
部署コード nchar(4) しない
更新日時 datetime しない

ソースリストの枠内をクリックすると全選択できます。

Option Strict On
Imports System.Text.RegularExpressions

'////////// 基本クラス:社員データ基本クラス //////////
Public MustInherit Class ClsShainBase

    '<< ◆ソースリストはこちら◆ >>

End Class

'////////// 派生クラス:社員データレコード追加クラス //////////
Public Class ClsInsertShain
    Inherits ClsShainBase

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

        MyBase.New()

    End Sub

    '-------------------------------------------------------
    ' プロパティ:社員コード
    '-------------------------------------------------------
    Public Property ShainCode() As String

        ' Getプロパティ
        Get
            Return shainCodeValue
        End Get

        ' Setプロパティ
        Set(ByVal value As String)
            ' 【エラーチェック】
            If value.Length = 0 Then
                ' 未入力はエラー
                Throw New myShainCodeException _
                ("社員コードを入力してください")
            Else
                ' 数字以外はエラー
                If Not Regex.IsMatch(value, "^[0-9]+$") Then
                    Throw New myShainCodeException _
                    ("社員コードに数字以外があります")
                Else
                    ' 社員テーブルにアクセス
                    Dim dbIO As New ClsShainTableIO

                    ' 社員コードが社員マスタにあればエラー
                    If dbIO.ExistKeyData(value) = True Then
                        Throw New myShainCodeException _
                        ("社員コードは登録済みです")
                    Else
                        shainCodeValue = value
                    End If
                End If
            End If

        End Set

    End Property

    '**********************************************************
    ' 機能:社員テーブルの行データを生成するメソッド
    ' 引数:なし
    ' 戻値:生成した行データ
    '******1*********2*********3*********4*********5**********6
    Public Function CreateDataRow() As DataRow

        Dim retRow As DataRow            ' リターン値
        Dim dbIO As New ClsShainTableIO()

        ' 行データ生成
        retRow = dbIO.CreateDataRow()

        Return retRow

    End Function

    '**********************************************************
    ' 機能:社員テーブルに1レコードを追加するメソッド
    ' 引数:行データ
    ' 戻値:追加したレコード数
    '******1*********2*********3*********4*********5**********6
    Public Function InsertRecord(ByVal shain As DataRow) As Integer

        Dim retInsertCount As Integer    ' リターン値
        Dim dbIO As New ClsShainTableIO()

        ' エラーチェックとデータセット
        Me.ShainCode = CStr(shain("社員コード"))
        MyBase.ShainShimei = CStr(shain("社員氏名"))
        MyBase.ShainKana = CStr(shain("社員カナ"))
        MyBase.koushinNichijiValue = DateTime.Now

        ' レコードの追加
        retInsertCount = dbIO.InsertRecord(Me)

        Return retInsertCount

    End Function

End Class