ADO.NET:UPDATE
CommandオブジェクトのExecuteNonQueryメソッドを使って、マスターテーブルの1レコードを更新するADO.NETのサンプルプログラム
MDB版 レコード更新サンプルプログラム
入力した社員コードのレコードを修正し、社員マスターテーブルの該当レコードを更新するプログラムを作成します。データベースsample.mdbはプロジェクトフォルダ下のbinフォルダに置きます。
コントロール | プロパティ | 設定値 |
---|---|---|
TxtSyainCode | Text | "" |
TxtSyainSimei TxtSyainKana |
BorderStyle | Fixed3D |
ReadOnly | True | |
TabStop | False | |
BtnSelect | Text | 検索 |
BtnUpdate | Text | 更新 |
Enabled | False |
社員マスターテーブルのレコードを更新するプログラムで使用するクラスです。同じプロジェクト内にクラスファイル(クラス名.VB)を追加します。
ソースリストの枠内をクリックすると全選択できます。
Option Strict On Imports System.Data.OleDb Public Class FormUpdate Inherits System.Windows.Forms.Form #Region " Windows フォーム デザイナで生成されたコード " ' 自動生成部分省略 #End Region ' データベースアクセスクラス Private dbIO As clsDBIO ' 社員データクラス Private syain As clsSyain '------------------------------------------------------------ ' 検索ボタンクリック処理 '------------------------------------------------------------ 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.TxtSyainSimei.Text = CStr(dt.Rows(0).Item(1)) Me.TxtSyainKana.Text = CStr(dt.Rows(0).Item(2)) ' 更新画面設定 Me.UpdateForm() 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 '------------------------------------------------------------ ' 更新ボタンクリック処理 '------------------------------------------------------------ Private Sub BtnUpdate_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles BtnUpdate.Click Dim retBool As Boolean Try syain.SyainSimei = Me.TxtSyainSimei.Text syain.SyainKana = Me.TxtSyainKana.Text ' 社員マスターを更新 retBool = dbIO.UpdateSyain(syain) 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 clsSyainSimeiException MessageBox.Show(ex.Message, "社員氏名エラー") Me.txtSyainSimei.Focus() Catch ex As clsSyainKanaException MessageBox.Show(ex.Message, "社員カナエラー") Me.txtSyainKana.Focus() 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.TxtSyainKana.Text = "" Me.TxtSyainSimei.Text = "" ' 社員コードにフォーカス Me.TxtSyainCode.Focus() ' 更新ボタン不活性化 Me.BtnUpdate.Enabled = False ' 氏名入力不可 Me.TxtSyainSimei.ReadOnly = True Me.TxtSyainSimei.TabStop = False ' カナ名入力不可 Me.TxtSyainKana.ReadOnly = True Me.TxtSyainKana.TabStop = False End Sub '------------------------------------------------------------ ' 更新画面設定 '------------------------------------------------------------ Private Sub UpdateForm() ' 社員氏名にフォーカス Me.TxtSyainSimei.Focus() ' 更新ボタン活性化 Me.BtnUpdate.Enabled = True ' 氏名入力可能 Me.TxtSyainSimei.ReadOnly = False Me.TxtSyainSimei.TabStop = True ' カナ名入力可能 Me.TxtSyainKana.ReadOnly = False Me.TxtSyainKana.TabStop = True End Sub End Class