派生抽象クラス[VB 2013]

Visual Basic 2010/2008 やさしいADO.NET DBプログラム

   やさしいVB 2010 / 2008 ADO.NET

社員データ管理基本クラスから派生した社員データ選択更新削除クラスを作成します。この派生クラスも抽象クラスにします。

社員データ管理派生クラスのメンバー

クラス図

基本クラスで実装しなかった社員コードプロパティーを実装するクラスです(クラス図のオレンジ色)。

この派生クラスも抽象クラスなので、オブジェクトインスタンスを生成しません。したがってMustInheritキーワードを付加する必要があります。

インスタンスを生成できないので、コンストラクタに、Protected修飾子を明示します。実装しなくても問題ありません。

  • コンストラクタの中で、社員マスターレコード取得メソッドを呼び出して、内部変数メンバーに保存
  • 社員コードプロパティーを実装し、このプロパティで社員マスターからレコードを取得
Option Strict On
Imports System.Text.RegularExpressions

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

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

End Class

'//////// サブ抽象クラス:社員データ選択更新削除クラス ////////
Public MustInherit Class ClsShainSub
    Inherits ClsShainBase

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

        MyBase.New()   ' 基本クラスのコンストラクタを呼び出す

    End Sub

    '=======================================================
    ' 機能:コンストラクタ
    ' 引数:社員コード
    '=======================================================
    Protected Sub New(ByVal shainCode As String)

        MyBase.New()  ' 基本クラスのコンストラクタを呼び出す

        ' ---<< 社員テーブルからレコード取得 >>---
        Dim shainTable As New ClsShainTableIO
        Dim dt As DataTable

        ' レコード取得メソッド呼出
        dt = shainTable.GetKeyData(shainCode)
        If dt.Rows.Count = 1 Then
            ' レコードがあった時
            MyBase.ShainCodeValue = shainCode
            MyBase.ShainShimei = CStr(dt.Rows(0)("社員氏名"))
            MyBase.ShainKana = CStr(dt.Rows(0)("社員カナ"))
            MyBase.BushoCode = CStr(dt.Rows(0)("部署コード"))
            MyBase.KoushinNichijiValue = _
            CDate(dt.Rows(0)("更新日時"))
        Else
            ' レコードが無かった時
            Throw New myShainCodeException _
            ("社員テーブルにレコードがありません")
        End If

    End Sub

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

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

    End Property

End Class

Copyright© やさしいVB2012/2010 ADO.NET. All rights reserved.