ADO.NET:DELETE
CommandオブジェクトのExecuteNonQueryメソッドを使って、マスターテーブルから1レコードを削除するADO.NETのサンプルプログラム
MDB版 レコード削除サンプルプログラム
入力した社員コードのレコードを社員マスターテーブルから削除するプログラムを作成します。データベースsample.mdbはプロジェクトフォルダ下のbinフォルダに置きます。
コントロール | プロパティ | 設定値 |
---|---|---|
TxtSyainCode | Text | "" |
LblSyainSimei |
BorderStyle | Fixed3D |
LblSyainKana | BorderStyle | Fixed3D |
BtnSelect | Text | 検索 |
BtnDelete | Text | 登録 |
Enabled | False |
社員マスターテーブルからレコードを削除するプログラムで使用するクラスです。同じプロジェクト内にクラスファイル(クラス名.VB)を追加します。
ソースリストの枠内をクリックすると全選択できます。
Option Strict On Imports System.Data.OleDb Public Class FormDelete Inherits System.Windows.Forms.Form #Region " Windows フォーム デザイナで生成されたコード " ' 自動生成部分省略 #End Region ' データベースアクセスクラス Private dbIO As clsDBIO ' 社員データクラス Private syain As clsSyain '------------------------------------------------------------ ' 検索ボタンクリック処理:社員テーブルから1レコード選択 '------------------------------------------------------------ Private Sub BtnSelect_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles BtnSelect.Click Dim retBool As Boolean Try ' 社員クラスオブジェクトインスタンス生成 syain = New ClsSyain(Me.TxtSyainCode.Text) ' データベースアクセスオブジェクトインスタンス生成 dbIO = New ClsDBIO(syain.SyainCode) ' 社員テーブルからレコード取得 Dim dt As DataTable = New DataTable() retBool = dbIO.GetSyain(dt) If retBool = True Then ' レコード取得成功 Me.LblSyainSimei.Text = CStr(dt.Rows(0).Item(1)) Me.LblSyainKana.Text = CStr(dt.Rows(0).Item(2)) ' 削除画面設定 Me.DeleteForm() Else ' レコード取得エラー Dim errMsg As String = _ "社員テーブルにレコードがありません" MessageBox.Show(errMsg, "エラー") ' 画面初期化 Me.InitForm() End If Catch ex As ClsSyainCodeException ' 社員コードの例外が発生した時の処理 MessageBox.Show(ex.Message, "社員コードエラー") ' 社員コードにフォーカス Me.TxtSyainCode.Focus() Catch ex As ClsDBIOException ' DBアクセスの例外が発生した時の処理 MessageBox.Show(ex.Message, "DBエラー") Catch ex As Exception ' 上記以外の例外が発生した時の処理 MessageBox.Show(ex.Message, "エラー") End Try End Sub '------------------------------------------------------------ ' 削除ボタンクリック処理:社員テーブルから1レコード削除 '------------------------------------------------------------ Private Sub BtnDelete_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles BtnDelete.Click Dim retBool As Boolean Try ' 社員マスターから1レコードを削除 retBool = dbIO.DeleteSyain() If retBool = True Then Dim msg As String = "社員マスターを削除しました" MessageBox.Show(msg, "正常") ' 画面初期化 Me.InitForm() Else Dim errMsg As String = _ "削除するレコードがありません" MessageBox.Show(errMsg, "エラー") End If Catch ex As ClsDBIOException ' DBアクセスの例外が発生した時の処理 MessageBox.Show(ex.Message, "DBエラー") Catch ex As Exception ' その他例外が発生した時の処理 MessageBox.Show(ex.Message, "例外発生") End Try End Sub '------------------------------------------------------------ ' 画面初期化 '------------------------------------------------------------ Private Sub InitForm() Me.TxtSyainCode.Text = "" Me.LblSyainKana.Text = "" Me.LblSyainSimei.Text = "" ' 社員コードにフォーカス Me.TxtSyainCode.Focus() ' 削除ボタン不活性化 Me.BtnDelete.Enabled = False End Sub '------------------------------------------------------------ ' 削除画面設定 '------------------------------------------------------------ Private Sub DeleteForm() ' 削除ボタン活性化 Me.BtnDelete.Enabled = True ' 削除ボタンにフォーカス Me.BtnDelete.Focus() End Sub End Class