すぐ使えるADO.NET

【Visual BasicによるADO.NETデータベースプログラミング】

本の紹介

バックナンバー:VB.NETデータベースプログラミング

ADO.NETの基本的なプログラミングを中心に、すぐ使えるサンプルプログラム満載です。




【第53号】

 第53号(2007.4.26発行)
======================================================================
           ★★ VB.NETデータベースプログラミング奮闘記 ★★
----------------------------------------------------------------------
いつもご購読ありがとうございます。ADO.NETの基本的なプログラミングを中
心に掲載します。今後ともよろしくお願い申し上げます。

すぐ使えるADO.NET --> サンプルプログラム満載
                      http://park5.wakwak.com/‾weblab/
======================================================================
  ■■ VB2005 Express ワンポイント:コンパイルの条件 ■■

Visual Basic 2005 Express Edition を試しています。今回は、コンパイルの
条件設定についてです。

  Dim Msg As String

と宣言しただけの使用されないローカル変数があったします。そうすると、緑
の波線で警告が表示されますが、警告なのでビルドは成功します。既定値では
未使用の変数は警告になっています。コンパイルの条件をエラーに変更するこ
ともできます。

コンパイルの条件は、メニューの「プロジェクト−プロパティ」から変更する
ことができます。しかし、既定値を変更する場合は、より厳しい条件に変更す
ることをお勧めします。


Visual Basic 2005 Express Editionは、こちらから無料でダウンロードする
ことができます。
http://www.microsoft.com/japan/msdn/vstudio/express/

----------------------------------------------------------------------
                   ■■ マスターテーブル保守 7(完) ■■

マスターテーブル保守処理については、これで完了です。前回も書きましたが、
プログラムの仕様は、テーブルの大小にかかわらず使えるようになっています。

次号からは、VB 2005 に開発環境を移行して、ado.netについて、クラスプロ
グラミングを意識してよりわかりやすく掲載していきます。clsDBIOクラスは、
次号以降も、修正や改良を加えながら、継続して利用していきます。

長くなりますが、マスターテーブル保守の全ソースリストを掲載します。
使用しているDBは、sample.mdbの社員テーブルのみで、社員コードを主キーに
した簡単なテーブルです。

【社員テーブル】
------------------------------------------------------------
key フィールド名   データ型   サイズ  値要求  空文字列の許可
------------------------------------------------------------
○ 社員コード  テキスト型   5 はい  いいえ
− 社員氏名   テキスト型  20 はい  いいえ
− 社員カナ   テキスト型  40 いいえ はい
− 更新日時   日付/時刻型  − はい  −
------------------------------------------------------------

'★Class frmInsert(レコード追加)は、insert.vbファイルにコーディング
'----------------- << データベースアクセスクラス >> -----------------
Option Explicit On

Public Class frmInsert
  Inherits System.Windows.Forms.Form

  '自動生成部分は省略

  '********** 社員テーブルに1レコードを追加する **********

  Private Sub btnInsert_Click( _
  ByVal sender As System.Object, ByVal e As System.EventArgs) _
  Handles btnInsert.Click

    Try

      Dim oRow As DataRow
      Dim insertCount As Integer
      Dim oDBIO As New clsDBIO()

      oRow = oDBIO.createDataRow("社員テーブル")

      oRow("社員コード") = Me.txtSyainCode.Text
      oRow("社員氏名") = Me.txtSyainSimei.Text
      oRow("社員カナ") = Me.txtSyainKana.Text

      Dim oSyain As New clsInsertSyain(oRow)

      oDBIO.insertRecord(oSyain)

      'フォーム初期設定
      Me.clear()

    Catch oExcept As mySyainCodeException
      '独自例外が発生した時の処理
      MessageBox.Show(oExcept.Message, "社員コード入力エラー")
      Me.txtSyainCode.Focus()

    Catch oExcept As mySyainSimeiException
      '独自例外が発生した時の処理
      MessageBox.Show(oExcept.Message, "社員氏名入力エラー")
      Me.txtSyainSimei.Focus()
    Catch oExcept As mySyainKanaException
      '独自例外が発生した時の処理
      MessageBox.Show(oExcept.Message, "社員カナ入力エラー")
      Me.txtSyainKana.Focus()

    Catch oExcept As myDBIOException
      '独自例外が発生した時の処理
      MessageBox.Show(oExcept.Message, "DBIO例外発生")

    Catch oExcept As Exception
      '例外が発生した時の処理
      MessageBox.Show(oExcept.ToString, "例外発生")

    End Try

  End Sub

  '----------<< クリアボタン処理 >>----------
  Private Sub btnClear_Click( _
  ByVal sender As System.Object, ByVal e As System.EventArgs) _
  Handles btnClear.Click

    Me.clear()     'フォーム初期設定

  End Sub

  '----------<< フォーム初期設定処理 >>----------
  Sub clear()

    Me.txtSyainCode.Text = ""
    Me.txtSyainSimei.Text = ""
    Me.txtSyainKana.Text = ""
    Me.txtSyainCode.Focus()

  End Sub

End Class


'★Class update(レコード変更)は、update.vbファイルにコーディング
'--------- << 社員テーブルの1レコードを更新するクラス >> -------------
Option Explicit On

Public Class update
  Inherits System.Windows.Forms.Form

  '自動生成部分は省略

  '********** 社員テーブルの1レコードを更新する **********

  '社員テーブル取得時の更新日時
  Private mUpdateTime As Date

  Private Sub update_Load _
  (ByVal sender As System.Object, ByVal e As System.EventArgs) _
  Handles MyBase.Load

    Me.txtSyainSimei.Enabled = False
    Me.txtSyainKana.Enabled = False

  End Sub

  '-------------------------------------------------------------------
  '                        検索ボタン押下
  '-------------------------------------------------------------------
  Private Sub btnSelect_Click _
  (ByVal sender As System.Object, ByVal e As System.EventArgs) _
  Handles btnSelect.Click

    Dim dtRec As New DataTable()                 'リターン値

    Try
      Dim oDBIO As New clsDBIO()

      dtRec = oDBIO.getKeyRecord("社員テーブル", Me.txtSyainCode.Text)
      If dtRec.Rows.Count = 1 Then
        'レコード取得成功
        Me.txtSyainSimei.Text = CStr(dtRec.Rows(0)("社員氏名"))
        Me.txtSyainKana.Text = CStr(dtRec.Rows(0)("社員カナ"))
        Me.mUpdateTime = CDate(dtRec.Rows(0)("更新日時"))
        '更新画面設定
        updateForm()

      Else
        MessageBox.Show _
        ("このコードは社員テーブルにありません", "社員コード入力エラー")
        Me.txtSyainCode.Focus()
        '画面初期化
        initForm()

      End If

    Catch oExcept As myDBIOException
      '例外が発生した時の処理(レコード取得エラー)
      MessageBox.Show(oExcept.Message, "例外発生")
      '画面初期化
      initForm()

    Catch oExcept As Exception
      '例外が発生した時の処理
      MessageBox.Show(oExcept.ToString, "例外発生")

    End Try

  End Sub

  '-------------------------------------------------------------------
  '                       更新ボタン押下
  '-------------------------------------------------------------------
  Private Sub btnUpdate_Click _
  (ByVal sender As System.Object, ByVal e As System.EventArgs) _
  Handles btnUpdate.Click

    Try

      Dim oRow As DataRow
      Dim updateCount As Integer
      Dim oDBIO As New clsDBIO()

      oRow = oDBIO.createDataRow("社員テーブル")

      oRow("社員コード") = Me.txtSyainCode.Text
      oRow("社員氏名") = Me.txtSyainSimei.Text
      oRow("社員カナ") = Me.txtSyainKana.Text
      oRow("更新日時") = Me.mUpdateTime

      Dim oSyain As New clsUpdateSyain(oRow)

      updateCount = oDBIO.updateRecord(oSyain)

      '画面初期化
      MessageBox.Show("正常に更新されました", "社員コード更新処理")
      initForm()
      Me.txtSyainCode.Text = ""

    Catch oExcept As mySyainSimeiException
      '社員氏名独自例外が発生した時の処理
      MessageBox.Show(oExcept.Message, "社員氏名入力エラー")
      Me.txtSyainSimei.Focus()

    Catch oExcept As mySyainKanaException
      '社員カナ独自例外が発生した時の処理
      MessageBox.Show(oExcept.Message, "社員カナ入力エラー")
      Me.txtSyainKana.Focus()

    Catch oExcept As myDBIOException
      '独自例外が発生した時の処理
      MessageBox.Show(oExcept.Message, "myDBIOE例外発生")

    Catch oExcept As Exception
      '例外が発生した時の処理
      MessageBox.Show(oExcept.ToString, "例外発生")

    End Try

  End Sub

  '-------------------------------------------------------------------
  '                      クリアボタン押下
  '-------------------------------------------------------------------
  Private Sub btnClear_Click _
  (ByVal sender As System.Object, ByVal e As System.EventArgs) _
  Handles btnClear.Click

    '画面初期化
    initForm()
    Me.txtSyainCode.Text = ""

  End Sub

  '-------------------------------------------------------------------
  '                     画面初期化
  '-------------------------------------------------------------------
  Sub initForm()

    '項目初期化
    Me.txtSyainKana.Text = ""
    Me.txtSyainSimei.Text = ""
    Me.mUpdateTime = Now()
    '社員コード入力可能
    Me.txtSyainCode.Enabled = True
    Me.txtSyainCode.ReadOnly = False
    Me.txtSyainCode.TabStop = True
    '社員コードにフォーカス
    Me.txtSyainCode.Focus()
    '検索ボタン活性化
    Me.btnSelect.Enabled = True
    '更新ボタン不活性化
    Me.btnUpdate.Enabled = False
    'クリアボタン不活性化
    Me.btnClear.Enabled = False
    '氏名入力不可
    Me.txtSyainSimei.ReadOnly = True
    Me.txtSyainSimei.TabStop = False
    'カナ名入力不可
    Me.txtSyainKana.ReadOnly = True
    Me.txtSyainKana.TabStop = False

  End Sub

  '-------------------------------------------------------------------
  '                     更新画面設定
  '-------------------------------------------------------------------
  Sub updateForm()

    '社員コード入力不可
    Me.txtSyainCode.Enabled = False
    Me.txtSyainCode.ReadOnly = True
    Me.txtSyainCode.TabStop = False
    '社員氏名にフォーカス
    Me.txtSyainSimei.Focus()
    '検索ボタン不活性化
    Me.btnSelect.Enabled = False
    '更新ボタン活性化
    Me.btnUpdate.Enabled = True
    'クリアボタン活性化
    Me.btnClear.Enabled = True
    '氏名入力可能
    Me.txtSyainSimei.Enabled = True
    Me.txtSyainSimei.ReadOnly = False
    Me.txtSyainSimei.TabStop = True
    'カナ名入力可能
    Me.txtSyainKana.Enabled = True
    Me.txtSyainKana.ReadOnly = False
    Me.txtSyainKana.TabStop = True

  End Sub

End Class


'★ Class delete(削除フォーム)は、delete.vbファイルにコーディング
'--------- << 社員テーブルの1レコードを削除するクラス >> ------------
Imports System.Data.OleDb

Public Class delete
  Inherits System.Windows.Forms.Form

  '自動生成部分は省略

  '社員テーブル取得時の更新日時
  Private mUpdateTime As Date

  '-------------------------------------------------------------------
  '           フォームロード
  '-------------------------------------------------------------------
  Private Sub delete_Load _
  (ByVal sender As System.Object, ByVal e As System.EventArgs) _
  Handles MyBase.Load

    '画面初期化
    initForm()
    Me.txtSyainCode.Text = ""

  End Sub

  '-------------------------------------------------------------------
  '           検索ボタン押下
  '-------------------------------------------------------------------
  Private Sub btnKensaku_Click _
  (ByVal sender As System.Object, ByVal e As System.EventArgs) _
  Handles btnKensaku.Click

    Dim dtRec As New DataTable()                 'リターン値

    Try
      Dim oDBIO As New clsDBIO("Read")

      dtRec = oDBIO.getKeyRecord("社員テーブル", Me.txtSyainCode.Text)
      If dtRec.Rows.Count = 1 Then
        'レコード取得成功
        Me.txtSyainSimei.Text = CStr(dtRec.Rows(0)("社員氏名"))
        Me.txtSyainKana.Text = CStr(dtRec.Rows(0)("社員カナ"))
        Me.mUpdateTime = CDate(dtRec.Rows(0)("更新日時"))
        '削除画面設定
        deleteForm()

      Else
        MessageBox.Show _
        ("この社員コードは社員テーブルにありません", "社員コード入力エラー")
        Me.txtSyainCode.Focus()
        '画面初期化
        initForm()

      End If

    Catch oExcept As myDBIOException
      '例外が発生した時の処理(レコード取得エラー)
      MessageBox.Show(oExcept.Message, "例外発生")
      '画面初期化
      initForm()
      Me.txtSyainCode.Text = CStr(dtRec.Rows(0)("社員コード"))

    Catch oExcept As Exception
      '例外が発生した時の処理
      MessageBox.Show(oExcept.ToString, "例外発生")

    End Try

  End Sub

  '-------------------------------------------------------------------
  '           クリアボタン押下
  '-------------------------------------------------------------------
  Private Sub btnClear_Click _
  (ByVal sender As System.Object, ByVal e As System.EventArgs) _
  Handles btnClear.Click

    '画面初期化
    initForm()
    Me.txtSyainCode.Text = ""

  End Sub

  '-------------------------------------------------------------------
  '           画面初期化
  '-------------------------------------------------------------------
  Sub initForm()

    '項目初期化
    Me.txtSyainKana.Text = ""
    Me.txtSyainSimei.Text = ""
    Me.mUpdateTime = Now()
    '社員コード入力可能
    Me.txtSyainCode.Enabled = True
    Me.txtSyainCode.ReadOnly = False
    Me.txtSyainCode.TabStop = True
    '社員コードにフォーカス
    Me.txtSyainCode.Focus()
    '検索ボタン活性化
    Me.btnKensaku.Enabled = True
    '削除ボタン不活性化
    Me.btnDelete.Enabled = False
    'クリアボタン不活性化
    Me.btnClear.Enabled = False
    '氏名入力不可
    Me.txtSyainSimei.ReadOnly = True
    Me.txtSyainSimei.TabStop = False
    'カナ名入力不可
    Me.txtSyainKana.ReadOnly = True
    Me.txtSyainKana.TabStop = False

  End Sub

  '-------------------------------------------------------------------
  '           削除画面設定
  '-------------------------------------------------------------------
  Sub deleteForm()

    '社員コード入力不可
    Me.txtSyainCode.ReadOnly = True
    Me.txtSyainCode.TabStop = False
    '検索ボタン不活性化
    Me.btnKensaku.Enabled = False
    '削除ボタン活性化
    Me.btnDelete.Enabled = True
    '削除ボタンにフォーカス
    Me.btnDelete.Focus()
    'クリアボタン活性化
    Me.btnClear.Enabled = True
    '氏名入力不可
    Me.txtSyainSimei.ReadOnly = True
    Me.txtSyainSimei.TabStop = False
    'カナ名入力不可
    Me.txtSyainKana.ReadOnly = True
    Me.txtSyainKana.TabStop = False

  End Sub

  '-------------------------------------------------------------------
  '           削除ボタン押下処理
  '-------------------------------------------------------------------
  Private Sub btnDelete_Click _
  (ByVal sender As System.Object, ByVal e As System.EventArgs) _
  Handles btnDelete.Click

    Try

      Dim oRow As DataRow
      Dim deleteCount As Integer
      Dim oDBIO As New clsDBIO()

      oRow = oDBIO.createDataRow("社員テーブル")

      oRow("社員コード") = Me.txtSyainCode.Text
      oRow("更新日時") = Me.mUpdateTime

      Dim oSyain As New clsDeleteSyain(oRow)

      deleteCount = oDBIO.deleteRecord(oSyain)

      '画面初期化
      MessageBox.Show("正常に削除されました", "社員コード削除処理")
      initForm()
      Me.txtSyainCode.Text = ""

    Catch oExcept As mySyainCodeException
      '独自例外が発生した時の処理
      MessageBox.Show(oExcept.Message, "社員コード入力エラー")
      Me.txtSyainCode.Focus()

    Catch oExcept As myDBIOException
      '独自例外が発生した時の処理
      MessageBox.Show(oExcept.Message, "入力エラー")
      initForm()

    Catch oExcept As Exception
      'その他例外が発生した時の処理
      MessageBox.Show(oExcept.ToString, "例外発生")

    End Try

  End Sub

End Class


'★ Class kensaku(レコード検索)は、kensaku.vbファイルにコーディング
'--------- << 社員テーブルの1レコードを検索するクラス >> ------------
Imports System.Data.OleDb

Public Class kensaku
  Inherits System.Windows.Forms.Form

  '自動生成部分は省略

  '-------------------------------------------------------------------
  '             検索ボタン押下
  '-------------------------------------------------------------------
  Private Sub btnKensaku_Click _
  (ByVal sender As System.Object, ByVal e As System.EventArgs) _
  Handles btnKensaku.Click

    Dim dtRec As New DataTable()                       'リターン値
    Dim saveSyainCode As String = Me.txtSyainCode.Text '社員コード保存

    Try
      Dim oDBIO As New clsDBIO("Read")

      dtRec = oDBIO.getKeyRecord("社員テーブル", Me.txtSyainCode.Text)
      If dtRec.Rows.Count = 1 Then
        'レコード取得成功
        Me.lblSyainSimei.Text = CStr(dtRec.Rows(0)("社員氏名"))
        Me.lblSyainKana.Text = CStr(dtRec.Rows(0)("社員カナ"))

      Else
        '画面初期化
        initForm()
        Me.txtSyainCode.Text = saveSyainCode

        MessageBox.Show _
        ("この社員コードは社員テーブルにありません", "社員コード入力エラー")

      End If

    Catch oExcept As myDBIOException
      '画面初期化
      initForm()
      Me.txtSyainCode.Text = saveSyainCode

      '例外が発生した時の処理(レコード取得エラー)
      MessageBox.Show(oExcept.Message, "例外発生")

    Catch oExcept As Exception
      '例外が発生した時の処理
      MessageBox.Show(oExcept.ToString, "例外発生")

    End Try

  End Sub

  '-------------------------------------------------------------------
  '             クリアボタン押下
  '-------------------------------------------------------------------
  Private Sub btnClear_Click _
  (ByVal sender As System.Object, ByVal e As System.EventArgs) _
  Handles btnClear.Click

    Me.initForm()   'フォーム初期設定

  End Sub

  '-------------------------------------------------------------------
  '             画面初期化
  '-------------------------------------------------------------------
  Sub initForm()

    '項目初期化
    Me.txtSyainCode.Text = ""
    Me.lblSyainSimei.Text = ""
    Me.lblSyainKana.Text = ""

    '社員コードにフォーカス
    Me.txtSyainCode.Focus()

  End Sub

End Class


'★clsSyain.vbファイル
'===========================【社員クラス】============================
Option Strict On

Imports System.Text.RegularExpressions

Public Interface ISyain

  Sub setSyainCode(ByVal parSyain As DataRow)

End Interface


'Public MustInherit Class clsSyainBase
Public Class clsSyainBase

  Protected mSyainCode As String
  Protected mSyainSimei As String
  Protected mSyainKana As String
  Protected mUpdateTime As Date

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

    MyBase.New()

  End Sub

  '-------------------- プロパティ:社員氏名 --------------------

  Public Property pSyainSimei() As String

    'Getプロパティ
    Get
      Return Me.mSyainSimei
    End Get

    'Setプロパティ
    Set(ByVal Value As String)
      '【エラーチェック】
      If Value = "" Then
        '未入力はエラー
        Throw New mySyainSimeiException("社員氏名を入力してください")
      Else
        mSyainSimei = Value
      End If
    End Set

  End Property

  '-------------------- プロパティ:社員カナ --------------------
  Public Property pSyainKana() As String

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

    'Setプロパティ
    Set(ByVal Value As String)
      '【エラーチェック】
      If Value = "" Then
        '未入力はエラー
        Throw New mySyainKanaException("社員カナを入力してください")
      Else
        '全角カタカナチェック
        If Regex.IsMatch(Value, "^[ァ-ー]+$") Then
          mSyainKana = Value
        Else
          Throw New mySyainKanaException _
          ("社員カナを全角カタカナで入力してください")
        End If
      End If

    End Set

  End Property

  '-------------------- プロパティ:更新日時 --------------------
  Public Property pUpdateTime() As Date

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

    'Setプロパティ
    Set(ByVal Value As Date)
      mUpdateTime = Value
    End Set

  End Property

  '-------------------- 【社員氏名セット】 --------------------
  Protected Sub setSyainSimei(ByVal parSyain As DataRow)

    If IsDBNull(parSyain("社員氏名")) Then
      Throw New Exception("clsUpdateSyain.New引数例外:社員氏名未設定")
    Else
      pSyainSimei = CStr(parSyain("社員氏名"))
    End If

  End Sub

  '-------------------- 【社員カナセット】 --------------------
  Protected Sub setSyainKana(ByVal parSyain As DataRow)

    If IsDBNull(parSyain("社員カナ")) Then
      Throw New Exception("clsUpdateSyain.New引数例外:社員カナ未設定")
    Else
      pSyainKana = CStr(parSyain("社員カナ"))
    End If

  End Sub

  '-------------------- 【更新日時セット】 --------------------
  Protected Sub setSyainKosinNitizi(ByVal parSyain As DataRow)

    If IsDBNull(parSyain("更新日時")) Then
      Throw New Exception("clsUpdateSyain.New引数例外:更新日時未設定")
    Else
      pUpdateTime = CDate(parSyain("更新日時"))
    End If

  End Sub

End Class

'==========================【社員追加基本クラス】=====================
Public Class clsInsertSyainBase
  Inherits clsSyainBase
  Implements ISyain

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

    MyBase.New()

  End Sub

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

    'Getプロパティ
    Get
      Return Me.mSyainCode
    End Get

    'Setプロパティ
    Set(ByVal Value As String)

      '未入力はエラー
      If Value = "" Then
        Throw New mySyainCodeException("社員コード未入力")
      Else
        '数字以外はエラー
        If Not Regex.IsMatch(Value, "^[0-9]+$") Then
          Throw New _
          mySyainCodeException("社員コードに数字以外あり")
        Else
          '社員テーブルアクセスオブジェクト
          Dim oDBIO As New clsDBIO()

          '社員マスタにこの社員コードがあればエラー
          If oDBIO.existKeyRecord("社員テーブル", Value) = True Then
            Throw New mySyainCodeException("社員コード登録済")
          Else
            Me.mSyainCode = Value
          End If
        End If
      End If

    End Set

  End Property

  '-------------------- 【社員コードセット】 --------------------
  Protected Sub setSyainCode(ByVal parSyain As DataRow) _
  Implements ISyain.setSyainCode

    If IsDBNull(parSyain("社員コード")) Then
      Throw New Exception _
      ("clsInsertSyain.New引数例外:社員コードが未設定")
    Else
      pSyainCode = CStr(parSyain("社員コード"))
    End If

  End Sub

End Class

'======================【社員読取更新削除基本クラス】=================
Public Class clsSUDSyainBase
  Inherits clsSyainBase
  Implements ISyain

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

    MyBase.New()

  End Sub

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

    'Getプロパティ
    Get
      Return Me.mSyainCode
    End Get

    'Setプロパティ
    Set(ByVal Value As String)

      '未入力はエラー
      If Value = "" Then
        Throw New mySyainCodeException("社員コード未入力")
      Else
        '数字以外はエラー
        If Not Regex.IsMatch(Value, "^[0-9]+$") Then
          Throw New _
          mySyainCodeException("社員コードに数字以外あり")
        Else
          '社員テーブルアクセスオブジェクト
          Dim oDBIO As New clsDBIO()

          '社員マスタにこの社員コードがなければエラー
          If oDBIO.existKeyRecord("社員テーブル", Value) = False Then
            Throw New mySyainCodeException("社員コード未登録")
          Else
            Me.mSyainCode = Value
          End If
        End If
      End If

    End Set

  End Property

  '【社員コードセット】
  Protected Sub setSyainCode(ByVal parSyain As DataRow) _
  Implements ISyain.setSyainCode

    If IsDBNull(parSyain("社員コード")) Then
      Throw New Exception _
      ("clsInsertSyain.New引数例外:社員コードが未設定")
    Else
      pSyainCode = CStr(parSyain("社員コード"))
    End If

  End Sub

End Class

'============================【社員追加クラス】=======================
Public Class clsInsertSyain
  Inherits clsInsertSyainBase

  '-------------------------------------------------------------------
  '機能:コンストラクタ
  '引数:in 社員1レコード分のデータ
  '-------------------------------------------------------------------
  Sub New(ByVal parSyain As DataRow)

    MyBase.New()

    '【社員コードセット】
    MyBase.setSyainCode(parSyain)

    '【社員氏名セット】
    MyBase.setSyainSimei(parSyain)

    '【社員カナセット】
    MyBase.setSyainKana(parSyain)

  End Sub

End Class

'============================【社員更新クラス】=======================
Public Class clsUpdateSyain
  Inherits clsSUDSyainBase

  '-------------------------------------------------------------------
  '機能:コンストラクタ
  '引数:in 社員1レコード分のデータ
  '-------------------------------------------------------------------
  Sub New(ByVal parSyain As DataRow)

    MyBase.New()

    '【社員コードセット】
    MyBase.setSyainCode(parSyain)

    '【社員氏名セット】
    MyBase.setSyainSimei(parSyain)

    '【社員カナセット】
    MyBase.setSyainKana(parSyain)

    '【更新日時セット】
    MyBase.setSyainKosinNitizi(parSyain)

  End Sub

End Class

'============================【社員削除クラス】=======================
Public Class clsDeleteSyain
  Inherits clsSUDSyainBase

  'Private mSyainCode As String
  'Private mUpdateTime As Date

  '-------------------------------------------------------------------
  '機能:コンストラクタ
  '引数:in 社員1レコード分のデータ
  '-------------------------------------------------------------------
  Sub New(ByVal parSyain As DataRow)

    MyBase.New()

    '【社員コードセット】
    MyBase.setSyainCode(parSyain)

    '【更新日時セット】
    MyBase.setSyainKosinNitizi(parSyain)

  End Sub

End Class

'============================【社員検索クラス】=======================
Public Class clsSelectSyain
  Inherits clsSUDSyainBase

  '-------------------------------------------------------------------
  '機能:コンストラクタ
  '引数:in 社員1レコード分のデータ
  '-------------------------------------------------------------------
  Sub New(ByVal parSyain As DataRow)

    MyBase.New()

    '【社員コードセット】
    MyBase.setSyainCode(parSyain)

  End Sub

End Class

'★ clsException.vbファイル
'============================【独自例外クラス】=======================

'--------------- DBIO独自エラーメッセージ例外クラス---------------
Public Class myDBIOException
  Inherits ApplicationException

  Public Sub New(ByVal errorMessage As String)
    MyBase.New(errorMessage)
  End Sub

End Class

'--------------- 社員コードエラーメッセージ例外クラス---------------
Public Class mySyainCodeException
  Inherits ApplicationException

  Public Sub New(ByVal errorMessage As String)
    MyBase.New(errorMessage)
  End Sub

End Class

'--------------- 社員氏名エラーメッセージ例外クラス---------------
Public Class mySyainSimeiException
  Inherits ApplicationException

  Public Sub New(ByVal errorMessage As String)
    MyBase.New(errorMessage)
  End Sub

End Class

'--------------- 社員カナエラーメッセージ例外クラス---------------
Public Class mySyainKanaException
  Inherits ApplicationException

  Public Sub New(ByVal errorMessage As String)
    MyBase.New(errorMessage)
  End Sub

End Class


'★clsDBIO.vbファイル(DBアクセスクラス)は、46号を参照してください。

----------------------------------------------------------------------
              ■■ 次号予告 第54号(5月発行予定) ■■

======================================================================
VB.NET データベースプログラミング奮闘記
  発行者:ウェブ実験室
          http://park5.wakwak.com/‾weblab/
----------------------------------------------------------------------
このメールマガジン(マガジンID: 0000128094)は、
インターネットの本屋さん『まぐまぐ』から配信されています。
  http://www.mag2.com/

【購読中止の方法】購読の中止は次のホームページからお願い致します。
  http://park5.wakwak.com/‾weblab/
  http://www.mag2.com/m/0000128094.htm
----------------------------------------------------------------------
このメールマガジン及び「すぐ使えるADO.NET」ホームページで公開している
ソースプログラム・データの利用により生じた損害等については、発行者は
一切責任を負いません。ソースプログラムの再利用は自由です。著作権は発行
者が所有します。
このメールマガジン及び「すぐ使えるADO.NET」ホームページに掲載されてい
る会社名・製品名等は、各社の登録商標または商標です。
======================================================================

Copyright© すぐ使えるADO.NET. All rights reserved.