C# PROGRAM

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

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

今回は、こちらの記事で作成したプログラムを元に、データベースのデータを更新する処理を追加します。
MVCのデータベース操作については、以下のマイクロソフト公式サイトを参照してください。

データ一覧画面に更新処理用のボタンを追加する

一覧画面に表示される各データの右側に、更新ボタンを追加します。
呼び出すコントローラーは UpdateController、呼び出すメソッドは Update()とします。
更新するデータを特定するため、Hidden()メソッドを使って IDをコントローラーに送る必要があります

下図のように、更新画面へのボタンが各データの右側に追加されます。

cs-mvc-15-1

データ更新用のインターフェイスと実装クラスを作成する

新規にデータ更新用のインターフェイス(IUpdateService)と実装クラス(UpdateImpl)を作成します。
DataFind()メソッドで、IDを元にデータを検索し、Update()メソッドで実際にデータベースを更新します。
使用するビューモデルは、登録処理で使用したもの(EmpViewModel)を使います。

実装クラス(UpdateImpl)の中でデータの更新処理を行います。
Update()メソッドでデータを更新し、SaveChangesAsync()メソッドでデータの更新内容を確定します。

データ更新用のサービスをProgram.csに追加する

インターフェイスと実装クラスを作成したら、Program.cs にサービスを追加します。

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

新規にデータ更新用のコントローラー(UpdateController)を作成します。
処理の流れは、「データ更新(Update)」→「データ確認(UpdateConfirm)」→「データ更新実行(UpdateProcess)」となります。
データの更新が完了したら、RedirectToAction()メソッドを使って、データ一覧画面に遷移します。

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

データ更新用のビューを作成します。
今回は、データ更新用、データ確認用の2つのビューを作成します。
また、ラベルとテキストボックスの位置を揃えるために、スタイルシートを使用しています。
ID は HiddenFor()メソッドで送る必要があります。

更新確認画面では、HTMLヘルパーのDisplayFor()メソッドを使って入力した値を表示していますが、TextBoxFor()メソッドと違い、POSTする際に値をコントローラーに渡すことができないので、HiddenFor()メソッドを使って値を保存する必要があります。
また、「戻る」ボタンで登録入力画面に戻る時に、入力したデータを渡すために「backInsert」という名前のフォームを作成します。

プログラムを実行する

一覧画面から更新したいデータの「更新」ボタンをクリックすると、以下のような更新画面が表示されます。

cs-mvc-15-2

変更したい値を入力して、「更新確認」ボタンを押下します。
以下の例では、郵便番号と住所を変更しています。

cs-mvc-15-3

更新確認画面が表示されるので、変更した内容を確認して、「更新実行」ボタンを押下します。

cs-mvc-15-4

一覧画面が表示されるので、更新画面で変更した値になっていることを確認します。

cs-mvc-15-5

-C#, PROGRAM
-,