1月21日(金)3、4コマ目
今日、やったこと
- Listクラス
- DB検索結果を表示する
今日のホワイトボード
Listクラス
Listクラスは配列と同じように複数のデータをひとまとめにすることができる。
配列と異なり、宣言時に要素数を指定する必要がない。
|
|
| 図 Listクラス |
プロパティ経由でListデータを表示
〇Index.cshtml.cs
要素がString型に限定されたList型のItemプロパティを用意。
OnGet()でItemプロパティに表示する値をセット。
List<Item>型のItemプロパティと追加されるItemクラスのインスタンスの関係は下図のとおり。
|
|
| 図 Itemプロパティ(List<Item>型)と追加されるItemクラスのインスタンス |
〇Index.cshtml
Index.cshtml.csのItemプロパティにアクセスするには Model.Item 。
foreach(var i in
Model.Item)でItemプロパティ(List<Item>型)から要素を1つづつ取り出し、変数iへ代入する。
改造
ItemクラスにGroupプロパティを追加。
グループ情報も表示する。
〇Index.cshtml.cs
Itemクラスのインスタンス生成時にGroupプロパティ代入値も指定。
〇Index.cshtml.cs
ItemクラスのGroupプロパティも表示。
DB検索結果を表示
Index.cshtml.csでDBアクセスすると、ソースコードが長くなり、見ずらい。
DBアクセスに特化したItemDAOクラスを作成して、Index.cshtml.csはItemDAOを使ってDBアクセスする。
ちなみにDAOはData Access Objectの略。
各クラスの関係、役割分担は下図のとおり。
|
|
| 図 クラス間の関係、役割分担 |
〇Itemクラス
商品情報を扱うためのクラス。
CS_商品マスタ1行=Itemクラスの1インスタンス。
〇ItemDAOクラス
CS_商品マスタテーブルにアクセスするためのクラス。
SelectAll()は全件検索メソッド。戻り値はList<Item>型。
〇Index.cshtml.cs
OnGet()でItemDAOクラスのSelectAll()メソッドでCS_商品マスタを全件検索。
検索結果はItemプロパティへ。
〇Index.cshtml
Index.cshtml.csのItemプロパティを参照して商品情報を取得、表示。
改造
CS_グループマスタも使って、グループIDではなく、グループ名も表示する。
〇Itemクラス
グループIDを格納するGroupIDプロパティを削除。
グループ名を格納するGroupプロパティを追加。
Groupプロパティも初期化できるようにコンストラクタ改造。
〇ItemDAOクラス
SelectAll()メソッドで実行するSQLを変更。
検索結果を取り出すところもグループ名を取り出す。
〇Index.cshtml.cs
変更なし
〇Index.cshtml
グループIDではなく、グループ名を表示。