部署データクラス [VB 2010]
Visual Basic 2010/2008 やさしいADO.NET DBプログラム
フォームクラスで、データベースアクセスクラスのメソッドを直接呼び出さないようにするため、データ管理クラスとして部署データ管理クラスを新たに導入します。
基本クラス・派生クラス
- 入力データとデータベースのデータの受け渡しと、エラーチェックをする部署データクラスの作成
- 部署データ管理基本クラスを作成。基本クラスでは、テーブル列(フィールド)項目と、追加・選択・更新・削除の共通処理を実装
- 基本クラスは、オブジェクトインスタンスを生成しないので、MustInheritキーワードを付加し、抽象クラスとして実装
部署マスター表
| Key |
列名 |
データ型 |
NULLを許容 |
| ● |
部署コード |
nchar(4) |
しない |
|
部署名称 |
nvarchar(20) |
しない |
|
更新日時 |
datetime |
しない |
Option Strict On
Imports System.Text.RegularExpressions
Public MustInherit Class ClsBushoBase
Protected bushoCodeValue As String
Private bushoMeiValue As String
Protected koushinNichijiValue As DateTime
Protected Sub New()
MyBase.New()
End Sub
Public Property BushoMei() As String
Get
Return bushoMeiValue
End Get
Set(ByVal value As String)
If value.Length = 0 Then
Throw New myBushoMeiException _
("部署名を入力してください")
Else
BushoMeiValue = value
End If
End Set
End Property
Public ReadOnly Property KoushinNichiji() As DateTime
Get
Return koushinNichijiValue
End Get
End Property
End Class
Public MustInherit Class ClsBushoSub
Inherits ClsBushoBase
Protected Sub New()
MyBase.New()
End Sub
Protected Sub New(ByVal bushoCode As String)
MyBase.New()
Dim bushoTable As New ClsBushoTableIO
Dim dt As DataTable
dt = bushoTable.GetKeyData(bushoCode)
If dt.Rows.Count = 1 Then
MyBase.BushoCodeValue = bushoCode
MyBase.BushoMei = CStr(dt.Rows(0)("部署名"))
MyBase.KoushinNichijiValue = _
CDate(dt.Rows(0)("更新日時"))
Else
Throw New myBushoCodeException _
("部署テーブルにレコードがありません")
End If
End Sub
Public ReadOnly Property BushoCode() As String
Get
Return bushoCodeValue
End Get
End Property
End Class
Public Class ClsSelectBusho
Inherits ClsBushoSub
Private bushoDataValue As DataTable
Public Sub New(ByVal bushoCode As String)
MyBase.New(bushoCode)
End Sub
Public Sub New()
MyBase.New()
Dim bushoTable As New ClsBushoTableIO
bushoDataValue = bushoTable.GetAllData( _
New String() {"部署コード", "部署名"}, _
"部署コード", True)
If bushoDataValue.Rows.Count = 0 Then
Throw New myBushoCodeException _
("部署テーブルにレコードがありません")
End If
End Sub
Public ReadOnly Property BushoData() As DataTable
Get
Return Me.bushoDataValue
End Get
End Property
End Class