C#

C#のWebアプリケーションでDBアクセスする処理を自動作成してみた

C#のWebアプリを作成する「ASP.NET Core Web アプリ」には、スキャフォールディングという大変便利な機能があり、これを利用すると、データベースのテーブル構造にマッピングするModelをベースに、そのテーブルに対するデータ一覧表示/追加/更新/削除を行うプログラムを自動で作成することができる。

今回は、スキャフォールディングを利用して、SQL Server上のテーブルに対するデータ一覧表示/追加/更新/削除を行うプログラムを作成してみたので、その手順を共有する。

前提条件

下記サイトの手順に従って、C#のWebアプリケーションが作成済であること。

C#でWebアプリケーションを作成してみたVisual Studio で、「ASP.NET と Web 開発」ワークロード内の「ASP.NET Core Web アプリ」を選択す...

また、下記サイトに記載されている、Windows端末上へのSQL Serverインストールが完了していること。

SQL Serverのデータ分析を行う環境構築を行った(1)今回は、SQL Serverのデータ分析を行う環境構築として、SQL Server・SQL Server Management Stud...

さらに、下記サイトに従って、USER01ユーザーを作成済であること。

SQLServer認証のユーザーを作成してみた今回は、SQL ServerのSSMS(SQL Server Management Studio)を利用して、SQL Server認証の...

やってみたこと

  1. USER_DATAテーブルの追加
  2. Modelの追加
  3. データ一覧表示/追加/更新/削除処理の追加
  4. 作成されたプログラムの実行結果
  5. 作成されたプログラムの内容

USER_DATAテーブルの追加

(ローカルの)SQL Serverに、idを自動で採番するUSER_DATAテーブルを追加する。その手順は、以下の通り。

1) idを1から連番で設定する状態で、USER_DATAテーブルを作成するSQLを実行する。

USER_DATAテーブルの追加_1

2) USER_DATAテーブルに、2件のレコードを追加する。

USER_DATAテーブルの追加_2_1

USER_DATAテーブルの追加_2_2

3) USER_DATAテーブルのデータを確認する。

USER_DATAテーブルの追加_3

Modelの追加

プログラム上で、今回アクセスするUSER_DATAテーブルにマッピングするためのModelを追加する。その手順は、以下の通り。

1) Modelを格納するためのフォルダを作成するため、アプリケーション「SampleWebApp」を選択し右クリックし、「追加」メニューから「新しいフォルダー」を選択する。
Modelの追加_1

2) 作成したフォルダのフォルダ名を「Models」に変更する。
Modelの追加_2_1

Modelの追加_2_2

3) Modelを作成するため、フォルダ「Models」を選択し右クリックし、「追加」メニューから「クラス」を選択する。
Modelの追加_3

4) アクセスするテーブル名に合わせ、クラス名を「User_Data.cs」に変更し、「追加」ボタンを押下する。
Modelの追加_4

5) 以下のように、「User_Data.cs」が追加されたことが確認できる。
Modelの追加_5

6) User_Data.csに、USER_DATAテーブルのカラム名を追加し、以下のように修正する。

なお、Idはデータベースで主キー用に必要で、string型の疑問符(?)は、そのプロパティがNull許容であることを示している。



サラリーマン型フリーランスSEという働き方でお金の不安を解消しよう先日、「サラリーマン型フリーランスSE」という働き方を紹介するYouTube動画を視聴しましたので、その内容をご紹介します。 「サ...

データ一覧表示/追加/更新/削除処理の追加

スキャフォールディングを利用して、USER_DATAテーブルへのデータ一覧表示/追加/更新/削除を行うプログラムを自動で作成する。その手順は、以下の通り。

1)「Pages」フォルダ下に「UserDatas」フォルダを作成するため、「Pages」フォルダを選択し右クリックし、「追加」から「新しいフォルダー」を選択する。
データ一覧表示/追加/更新/削除処理の追加_1

2) 以下のように、作成したフォルダを「UserDatas」とリネームする。
データ一覧表示/追加/更新/削除処理の追加_2

3)「UserDatas」フォルダを選択し右クリックし、「追加」から「新規スキャフォールディングアイテム」を選択する。
データ一覧表示/追加/更新/削除処理の追加_3

4) 左側のメニューから「Razor ページ」を選択し、「Entity Framework を使用する Razor ページ (CRUD)」メニューを選択後、「追加」ボタンを押下する。
データ一覧表示/追加/更新/削除処理の追加_4

5) 以下の画面が表示されるため、モデルクラスに、作成したUser_Dataクラスを指定する。
データ一覧表示/追加/更新/削除処理の追加_5

6) DbContext クラスを指定するため、右横の「+」ボタンを押下する。
データ一覧表示/追加/更新/削除処理の追加_6

7) 新しいデータ コンテキストの型が自動表示されるため、そのまま「追加」ボタンを押下する。
データ一覧表示/追加/更新/削除処理の追加_7

8) 以下の状態で表示されるため、そのまま「追加」ボタンを押下する。
データ一覧表示/追加/更新/削除処理の追加_8

9) スキャフォールディング中の画面は、以下の通り。
データ一覧表示/追加/更新/削除処理の追加_9

10) スキャフォールディングが完了すると、以下のように、赤枠のソースコードが追加されることが確認できる。また、青枠の「appsettings.json」に、DBの接続先が自動設定される。
データ一覧表示/追加/更新/削除処理の追加_10

11)「appsettings.json」の DB接続先を、以下のように変更する。

なお、Server=(サーバー名);Database=(データベース名);user=(ユーザーID);password=(パスワード);Trusted_Connection=(Windows認証を利用するか);TrustServerCertificate=(証明書の検証をスキップするか)を指定している。また、「TrustServerCertificate=True」は、実行時にWin32Exceptionの発生を防ぐための指定となる。



Androidロックを解除する裏ワザ「4uKey for Android」をご紹介Android端末では、以下の画像のような画面ロックパスワードを設定することができますが、このパスワードを忘れてしまうと、Android...

作成されたプログラムの実行結果

作成されたプログラムの実行結果は、以下の通り。

1) 実行前のUSER_DATAテーブルのデータは、以下の通り。
サンプルプログラムの実行結果_1

2) プロジェクトを実行し、画面表示した結果は、以下の通り。
サンプルプログラムの実行結果_2

3) 画面表示されたURL末尾に「/UserDatas/」を付与すると、以下のように、USER_DATAテーブルのデータが一覧に表示されることが確認できる。ここで「Create New」リンクを押下する。
サンプルプログラムの実行結果_3

4) 以下のように、USER_DATAテーブルにデータを追加する画面が表示されることが確認できる。
サンプルプログラムの実行結果_4

5) 以下のように、追加したいデータを入力し、「Create」ボタンを押下する。
サンプルプログラムの実行結果_5

6) 以下のように、一覧画面に戻り、Nameが「テスト プリン3」のデータが追加されたことが確認できる。
サンプルプログラムの実行結果_6_1

実際にDBのデータを確認した場合も、Nameが「テスト プリン3」のデータが追加されたことが確認できる。
サンプルプログラムの実行結果_6_2

7) Nameが「テスト プリン3」のデータの「Edit」リンクを押下する。
サンプルプログラムの実行結果_7

8) 以下のように、USER_DATAテーブルのid=3のデータを編集する画面が表示されることが確認できる。
サンプルプログラムの実行結果_8

9) 以下のように、更新後のデータを入力し、「Save」ボタンを押下する。
サンプルプログラムの実行結果_9

10) 以下のように、一覧画面に戻り、Nameが「テスト プリン3」だったデータが更新されたことが確認できる。
サンプルプログラムの実行結果_10_1

実際にDBのデータを確認した場合も、Nameが「テスト プリン3」だったデータが更新されたことが確認できる。
サンプルプログラムの実行結果_10_2

11) Nameが「テスト プリン3変更」のデータの「Details」リンクを押下する。
サンプルプログラムの実行結果_11

12) 以下のように、USER_DATAテーブルのid=3のデータが表示されることが確認できる。ここで「Back to List」リンクを押下する。
サンプルプログラムの実行結果_12

13) Nameが「テスト プリン3変更」のデータの「Delete」リンクを押下する。
サンプルプログラムの実行結果_13

14) 以下のように、USER_DATAテーブルのid=3のデータが表示されることが確認できる。このデータを削除するには「Delete」ボタンを押下する。
サンプルプログラムの実行結果_14

15) 以下のように、一覧画面に戻り、Nameが「テスト プリン3変更」だったデータが削除されたことが確認できる。
サンプルプログラムの実行結果_15_1

実際にDBのデータを確認した場合も、Nameが「テスト プリン3変更」だったデータが削除されたことが確認できる。
サンプルプログラムの実行結果_15_2



Code VillageはJavaScriptを中心としたサポート体制が充実したプログラミングスクールだったJavaScriptや、JavaScriptのフレームワーク「React」「Vue」を中心にオンラインで学習できるプログラミングスクール...

作成されたプログラムの内容

作成されたプログラムの内容は、以下の通り。
サンプルプログラムの構成
なお、赤枠は、スキャフォールディングにより追加・更新されたプログラムとなる。

DBアクセスするためのDbContextの定義は、以下の通り。

なお、DbContextについては、以下のサイトを参照のこと。
https://qiita.com/yamazaki_25/items/f68a9f891eeeaa66a267

また、DBアクセス先は、先ほど変更した「appsettings.json」に定義している。

さらに、Program.csの内容は以下の通りで、先ほどのDbContextの定義を追加している。

また、一覧画面のC#ファイルの内容は以下の通りで、OnGetAsyncメソッドで、USER_DATAテーブルの全データを取得している。

さらに、一覧画面のHTMLファイルの内容は以下の通りで、Index.cshtml.csで取得したデータを、一覧に表示している。

その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/c-sharp/tree/master/c-sharp-web-crud/SampleWebApp

要点まとめ

  • C#のWebアプリを作成する「ASP.NET Core Web アプリ」には、スキャフォールディングという大変便利な機能があり、これを利用すると、データベースのテーブル構造にマッピングするModelをベースに、そのテーブルに対するデータ一覧表示/追加/更新/削除を行うプログラムを自動で作成することができる。