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ではなく、グループ名を表示。






このブログの人気の投稿

1月28日(金)1、2コマ目

10月28日(木)1コマ目

10月15日(木)1コマ目