PROGRAM VISUALBASIC

ASP.NET(VB.NET) MVCモデル入門~データベースのデータを更新する

データベースのデータを更新するプログラム

今回は、こちらの記事で作成したプログラムに、データの更新処理を追加します。

データ一覧画面に更新用のリンクを追加

更新画面を呼び出すリンクを、一覧画面に追加します。
呼び出すコントローラーはUpdateController、呼び出すメソッドはUpdate()とします。
また、HTMLヘルパーのActionLink()メソッドは、コントローラーとNew Withでオプションを指定しているため、最後にNothingが必要になります。

下図のように、更新画面へのリンクがデータ一覧の横に配置されます。

vbmvc15-1

データ更新用のコントローラーを作成

新規にデータ更新用のコントローラーを作成します。
コントローラーには、データ入力用(Update)、データ確認用(UpdateConfirm)、データ更新用(UpdateDb)の3つのメソッドを作成します。
Update()メソッドは、選択したデータのIDが渡され、そのIDをキーとして、Find()メソッドを使ってEmpテーブルからデータを取得します。

データ更新用の処理を追加

既存のDbModelクラスに、データベースにデータを更新するメソッド(UpdateEmp)を追加します。
引数で渡されたEmpモデルの状態をModifiedを使って更新済みとした後に、SaveChanges()メソッドで、データベースの状態を保存します。
また、37行目のEntityState.Modifiedを使うために、System.Data.Entityをインポートする必要があります。
データ更新に関する詳しい内容は、以下のマイクロソフトの公式サイトを参照してください。

データ更新用のビューを作成

データの値を更新するビューを作成します。
Formの送信先に、UpdateコントローラーのUpdateConfirm()メソッドを指定します。

「戻る」ボタンは、登録処理と同様、JavaScriptを使って、HomeコントローラーのIndex()メソッドに飛ぶようにしています。
データ更新画面は、以下のようになります。
元のデータが、そのままボックスに表示されます。
なお、IDはプライマリーキーなので、変更できないようにしています。

vbmvc15-2
データ更新画面

データ確認用のビューを作成

更新したデータを確認するためのビューを作成します。
値を表示するDisplayFor()メソッドは、Formでデータを渡すことができないので、HiddenFor()メソッドを使って、値をUpdateDb()メソッドに渡します。

データ確認画面は、以下のようになります。
以下の例では、住所を変更しています。

vbmvc15-3
データ確認画面

「更新」ボタンを押下すると、更新したデータがデータベースに登録され、一覧画面に戻ります。
一覧画面では、更新したデータが表示されます。

vbmvc15-4
実行結果

-PROGRAM, VISUALBASIC
-, ,