C# PROGRAM

ASP.NET(C#) MVCモデル入門~データベースにデータを登録する

データベースにデータを登録するプログラム

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

テーブルに自動採番の設定を追加する

データを登録する際に、Id を自動的に採番するため、Empテーブルの Idカラムに自動採番の設定を追加します。
オブジェクトエクスプローラーから Empテーブルにカーソルを合わせ、右クリック → 「デザイナーの表示」を選択します。
デザイナーから Id 行を選択し、プロパティの「IDENTITY の設定」を「True」に変更します。

cs-mvc-14-1

上記の設定が完了したら、デザイナーの左上にある「更新」を押下します。

cs-mvc-14-2

以上で、ID の自動採番の設定は完了です。

DbContextクラスを再作成

テーブルの内容を変更したため、DbContextクラスを再作成する必要があります。
メニューバーから「ツール」→「NuGetパッケージマネージャー」→「パッケージマネージャーコンソール」を選択し、パッケージマネージャーコンソールを起動します。
パッケージマネージャーコンソールから以下のスキャフォールディングコマンドを使って、モデルクラスと DbContextクラスを再作成します。
なお、今回は再作成なので、必ず「-Force」オプションを指定します

Scaffold-DbContext 'Name=ConnectionStrings:MvcAppDb' Microsoft.EntityFrameworkCore.SqlServer -ContextDir Data -OutputDir Models/Entity -NoOnConfiguring -Force

データ一覧画面に新規登録処理用のリンクを追加する

新規登録処理を呼び出すリンクを、一覧画面に追加します。
呼び出すコントローラーは InsertController、呼び出すメソッドは Insert()とします。
また、ID が自動的に登録されているかを確認するために、一覧にID列を追加しています。

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

cs-mvc-14-3

データ登録用のモデルを作成する

登録内容を格納するビューモデルを作成します。
Modelsフォルダー配下にビューモデル用のフォルダー(Models/ViewModel)を作成し、そこにデータ登録用のビューモデル(EmpViewModel.cs)を配置します。
ビューモデルの内容は、以下のようになります。
アノテーション「Displayname()」は、登録画面に項目の日本語名を表示するために設定しています。

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

新規にデータ登録用のインターフェイス(IInsertService)と実装クラス(InsertImpl)を作成します。

実装クラス(InsertImpl.cs)の中でデータの登録処理を行います。
Add()メソッドでデータを登録し、SaveChangesAsync()メソッドでデータの登録内容を確定します。

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

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

データ登録用のコントローラーを作成する

新規にデータ登録用のコントローラー(InsertController)を作成します。
処理の流れは、「データ入力(Insert)」→「データ確認(InsertConfirm)」→「データ登録(InsertProcess)」となります。
データの登録が完了したら、RedirectToAction()メソッドを使って、データ一覧画面に遷移します。

_ViewImports.csに追加

_ViewImports.cs にビューモデルを配置するフォルダーを追加しておきます。
こうすることで、ビューで使用するビューモデルを記述する際、フォルダー名が不要になります。

データ登録用のビューを作成する

データ登録用のビューを作成します。
今回は、データ入力用、データ確認用の2つのビューを作成します。
また、ラベルとテキストボックスの位置を揃えるために、スタイルシートを使用しています。

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

site.css に以下の内容を追加します。

プログラムを実行する

一覧画面から新規登録をクリックすると、以下のような登録画面が表示されます。

cs-mvc-14-4

データを入力して、「登録確認」ボタンを押下します。

cs-mvc-14-5

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

cs-mvc-14-6

一覧画面が表示され、入力したデータが登録されていることを確認します。

cs-mvc-14-7

-C#, PROGRAM
-,