MDB版:データベースアクセス
マスターテーブルアクセスクラスを実装します。
取得・挿入(追加)・削除・更新メソッド
実装するメソッドは次のとおりです。
- レコードがマスターテーブルに存在するか否かを調べるメソッド
- マスターテーブルから1レコードを取得するメソッド
- マスターテーブルに1レコードを登録(挿入)するメソッド
- マスターテーブルの1レコードを更新するメソッド
- マスターテーブルから1レコードを削除するメソッド
Option Strict On 'プロジェクトのプロパティでも設定可能 Imports System.Data.OleDb Imports System.Text.RegularExpressions '////////// データベースアクセスクラス ////////// Public Class clsDBIO '--------------- 変数 --------------- ' 社員コード Private syainCode As String ' 更新日時 Private kosinNitizi As Date '======================================================== ' 機能:コンストラクタ ' 引数:社員コード '======================================================== Public Sub New(ByVal syainCode As String) MyBase.New() Me.syainCode = syainCode End Sub '******************************************************** ' 機能:レコードが社員テーブルに存在するか否かを調べる ' 引数:なし ' 戻値:True:存在する. False:存在しない '******************************************************** Public Function ExistSyain() As Boolean Dim con As New OleDbConnection() Dim cmd As New OleDbCommand() ' DB接続文字列の設定 con.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _ Application.StartupPath & "\sample.mdb" ' コネクションの設定 cmd.Connection = con ' DB接続を開く con.Open() ' SQL文の設定 cmd.CommandText = "SELECT COUNT(*) FROM 社員テーブル " cmd.CommandText &= "WHERE 社員コード = @syainCode" ' SQL文パラメータの設定 cmd.Parameters.Add("@syainCode", OleDbType.Char, 5) cmd.Parameters("@syainCode").Value = Me.syainCode ' 社員テーブルから該当社員コードのレコード数取得 Dim count As Integer count = CInt(cmd.ExecuteScalar()) If count > 0 Then ' レコードが存在する時の処理 Return True Else ' レコードが存在しない時の処理 Return False End If ' DB接続を閉じる If Not con Is Nothing Then con.Close() End If End Function '******************************************************** ' 機能:社員テーブルから1レコードを取得するメソッド ' 引数:Byref 社員レコード(DataTable型) ' 戻値:True:取得成功. False:取得レコードなし '******************************************************** Public Function GetSyain( _ ByRef syainRecord As DataTable) As Boolean Dim con As New OleDbConnection() Dim cmd As New OleDbCommand() Dim da As New OleDbDataAdapter() Dim ds As New DataSet() ' DB接続文字列の設定 con.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _ Application.StartupPath & "\sample.mdb" 'コネクションの設定 cmd.Connection = con ' DB接続を開く con.Open() ' SQL文の設定 cmd.CommandText = "SELECT * FROM 社員テーブル " cmd.CommandText &= "WHERE 社員コード = @syainCode" ' SQL文パラメータの設定 cmd.Parameters.Add("@syainCode", OleDbType.Char, 5) cmd.Parameters("@syainCode").Value = Me.syainCode ' 社員テーブルから該当社員IDのレコード読込 da.SelectCommand = cmd da.Fill(syainRecord) If syainRecord.Rows.Count > 0 Then ' レコードが取得できた時の処理 ' 更新日時セット kosinNitizi = CDate(syainRecord.Rows(0).Item(5)) ' 戻り値Trueをセットしてリターン Return True Else ' レコードが取得できなかった時の処理 ' 戻り値Falseをセットしてリターン Return False End If ' DB接続を閉じる If Not con Is Nothing Then con.Close() End If End Function '******************************************************** ' 機能:社員テーブルに1レコードを登録するメソッド ' 引数:clsSyainオブジェクト ' 戻値:True:登録成功. False:登録失敗 '******************************************************** Public Function InsertSyain _ (ByVal syain As ClsSyain) As Boolean Dim con As New OleDbConnection() Dim cmd As New OleDbCommand() ' DB接続文字列の設定 con.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _ Application.StartupPath & "\sample.mdb" ' コネクションの設定 cmd.Connection = con ' DB接続を開く con.Open() ' SQL文の設定 cmd.CommandText = "INSERT INTO 社員テーブル" cmd.CommandText &= "(社員コード, 社員氏名, " cmd.CommandText &= "社員カナ, 更新日時) " cmd.CommandText &= "VALUES(@syainCode, @simei, " cmd.CommandText &= "@kana, @kosinNitizi)" ' パラメータの設定 cmd.Parameters.Add("@syainCode", OleDbType.Char, 5) cmd.Parameters("@syainCode").Value = syain.SyainCode cmd.Parameters.Add("@simei", OleDbType.Char, 20) cmd.Parameters("@simei").Value = syain.SyainSimei cmd.Parameters.Add("@kana", OleDbType.Char, 40) cmd.Parameters("@kana").Value = syain.SyainKana cmd.Parameters.Add("@kosinNitizi", OleDbType.Date) cmd.Parameters("@kosinNitizi").Value = Now() ' キー値のレコード存在しなければテーブルに追加 If Me.ExistSyain() = False Then ' 社員テーブル挿入処理実行 cmd.ExecuteNonQuery() ' 正常リターン Return True Else ' エラーリターン Return False End If ' DB接続を閉じる If Not con Is Nothing Then con.Close() End If End Function '******************************************************** ' 機能:社員テーブルの1レコードを更新するメソッド ' 引数:clsSyainオブジェクト ' 戻値:True:更新成功. False:更新失敗 '******************************************************** Public Function UpdateSyain _ (ByVal syain As ClsSyain) As Boolean Dim con As New OleDbConnection() Dim cmd As New OleDbCommand() ' DB接続文字列の設定 con.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _ Application.StartupPath & "\sample.mdb" ' コネクションの設定 cmd.Connection = con ' DB接続を開く con.Open() ' SQL文の設定 cmd.CommandText = "UPDATE 社員テーブル " cmd.CommandText &= "SET 社員氏名=@syainSimei, " cmd.CommandText &= "社員カナ=@syainKana, " cmd.CommandText &= "更新日時=@newKosinNitizi " cmd.CommandText &= "WHERE 社員コード=@syainCode " cmd.CommandText &= "AND 更新日時=@kosinNitizi" ' SQL文パラメータの設定 cmd.Parameters.Add("@simei", OleDbType.Char, 20) cmd.Parameters("@simei").Value = syain.SyainSimei cmd.Parameters.Add("@kana", OleDbType.Char, 40) cmd.Parameters("@kana").Value = syain.SyainKana cmd.Parameters.Add("@newKosinNitizi", OleDbType.Date) cmd.Parameters("@newKosinNitizi").Value = Now() cmd.Parameters.Add("@syainCode", OleDbType.Char, 5) cmd.Parameters("@syainCode").Value = Me.syainCode cmd.Parameters.Add("@kosinNitizi", OleDbType.Date) cmd.Parameters("@kosinNitizi").Value = Me.kosinNitizi ' 社員テーブル更新SQL文実行 Dim count As Integer count = cmd.ExecuteNonQuery() If count > 0 Then ' 更新成功 Return True Else ' 更新するレコードがなかった時の処理 Return False End If ' DB接続を閉じる If Not con Is Nothing Then con.Close() End If End Function '******************************************************** ' 機能:社員テーブルから1レコードを削除するメソッド ' 引数:なし ' 戻値:True:削除完了. False:削除レコードなし '******************************************************** Public Function DeleteSyain() As Boolean Dim con As New OleDbConnection() Dim cmd As New OleDbCommand() ' DB接続文字列の設定 con.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _ Application.StartupPath & "\sample.mdb" ' コネクションの設定 cmd.Connection = con ' DB接続を開く con.Open() ' SQL文の設定 cmd.CommandText = "DELETE FROM 社員テーブル " cmd.CommandText &= "WHERE 社員コード=@syainCode " cmd.CommandText &= "AND 更新日時=@kosinNitizi" ' SQL文パラメータの設定 cmd.Parameters.Add("@syainCode", OleDbType.Char, 5) cmd.Parameters("@syainCode").Value = Me.syainCode cmd.Parameters.Add("@kosinNitizi", OleDbType.Date) cmd.Parameters("@kosinNitizi").Value = Me.kosinNitizi ' 社員テーブル削除SQL文実行 Dim count As Integer count = cmd.ExecuteNonQuery() If count > 0 Then ' レコードの削除が成功した時の処理 Return True Else ' 削除するレコードがなかった時の処理 Return False End If ' DB接続を閉じる If Not con Is Nothing Then con.Close() End If End Function End Class
- SQL Server版:マスター保守はこちら