部署テーブルアクセスクラスの実装
DBアクセス基本クラスから派生した部署テーブルアクセスクラスのレコード検索関連のメンバーです。
サンプルプログラム
部署マスターアクセスクラスは、sampleDBアクセス基本クラスを継承し、部署マスターアクセスに必要なメンバーを実装します。
sampleDBアクセス基本クラスにないメンバーはここに実装します。基本クラスあるメソッドと異なる部分があるメンバーは、Overloadsして実装します。
次の部署マスター検索に必要なメンバーを実装します。
- コンストラクタ(引数:なし)
- キー値レコード取得メソッド
- キー値レコード存在チェックメソッド
Key | 列名 | データ型 | NULLを許容 |
---|---|---|---|
● | 部署コード | nchar(4) | しない |
部署名称 | nvarchar(20) | しない | |
更新日時 | datetime | しない |
ソースリストの枠内をクリックすると全選択できます。
Option Strict On Imports System.Data.SqlClient Imports System.Text.RegularExpressions Imports System.Transactions ' [参照の追加]で追加 '////////// 派生クラス:部署マスターアクセスクラス ////////// Public Class ClsBushoTableIO Inherits ClsSampleDBIO '========================================================== ' 機能:コンストラクタ ' 引数:なし '========================================================== Public Sub New() MyBase.New() End Sub '********************************************************** ' 機能:キー値のレコードの有無を調べるメソッド ' 引数:部署コード ' 戻値:レコードあり-->True、レコードなし-->False ' 補足:主キーフィールドはNChar型とする '******1*********2*********3*********4*********5**********6 Public Overloads Function ExistKeyData(ByVal bushoCode As String) As Boolean Dim retExist As Boolean ' リターン値 ' 引数の空文字列チェック If bushoCode.Length = 0 Then Throw New myBushoCodeException _ ("部署コードが未入力です") End If ' キー値文字チェック(キー値は数字のみで構成されている) If Not Regex.IsMatch(bushoCode, "^[0-9]+$") Then ' 数字以外はエラー Throw New myBushoCodeException _ ("部署コードに数字以外の文字があります") End If ' キー値長さチェック(部署コードは4桁) If Not bushoCode.Length = 4 Then ' 4桁以外はエラー Throw New myBushoCodeException _ ("部署コードの桁数が正しくない") End If ' 引数のレコードの有無をチェックする retExist = MyBase.ExistKeyData _ ("部署テーブル", "部署コード", bushoCode) ' ◆戻値を設定してリターン Return retExist End Function '********************************************************** ' 機能:引数のレコードを部署マスターから取得する ' 引数:部署コード ' 戻値:引数に指定した部署コードのレコード(DataTble型) ' 補足:主キーフィールドはNChar型とする '******1*********2*********3*********4*********5**********6 Public Overloads Function _ GetKeyData(ByVal bushoCode As String) As DataTable Dim retDt As New DataTable ' リターン値 ' 引数の空文字列チェック If bushoCode.Length = 0 Then Throw New mybushoCodeException _ ("部署コードが未入力") End If ' キー値文字チェック(キー値は数字のみで構成されている) If Not Regex.IsMatch(bushoCode, "^[0-9]+$") Then ' 数字以外はエラー Throw New mybushoCodeException _ ("部署コードに数字以外の文字があります") End If ' キー値長さチェック(部署コードは4桁) If Not bushoCode.Length = 4 Then ' 4桁以外はエラー Throw New mybushoCodeException _ ("部署コードの桁数が正しくない") End If ' 部署テーブルから引数コードのレコードを取得する retDt = MyBase.GetKeyData _ ("部署テーブル", "部署コード", bushoCode) ' ◆戻値を設定してリターン Return retDt End Function '********************************************************** ' 機能:部署マスターの全レコードを取得する ' 引数:列名 ' 引数:整列列名 ' 引数:昇順ならTrue、降順ならFalse ' 戻値:取得した全レコード '******1*********2*********3*********4*********5**********6 Public Overloads Function GetAllData(ByVal columns() As String, _ Optional ByVal sortKey As String = Nothing, _ Optional ByVal sorted As Boolean = True) As DataTable Dim retDt As New DataTable ' リターン値 ' 引数の空文字列チェック If columns.Length = 0 Throw New myDBIOException _ ("エラー:引数Columnsが未設定") End If ' 部署テーブルから全レコードを取得する retDt = MyBase.GetAllData _ ("部署テーブル", columns, sortKey, sorted) ' ◆戻値を設定してリターン Return retDt End Function End Class