投稿

5月19日(火)1、2コマ目

イメージ
今日、やったこと [練習問題]拡張Sessionオブジェクト 練習問題9 [練習問題]拡張Sessionオブジェクト 練習問題10 1画面に複数のボタン 今日のホワイトボード [練習問題]拡張Sessionオブジェクト 練習問題9 正解例をあげておきます。 Program.cs Sessionオブジェクトが使えるように設定。 いままでとおなじ 。 SessionExtensions.cs ISessionインタフェースに拡張メソッドを追加する。 いままでと同じ 。 Item.cs iPad情報受け渡し用クラス。 SelectedItem.cs 選択されたiPad、色をひとまとめにして受け渡すためのクラス。 Index.cshtml.cs Index.cshtml Sessionオブジェクトから選択済みiPad情報を取得し、表形式で表示する。 [練習問題]拡張Sessionオブジェクト 練習問題10 正解例をあげておきます。 Program.cs Sessionオブジェクトが使えるように設定。 いままでとおなじ 。 SessionExtensions.cs ISessionインタフェースに拡張メソッドを追加する。 いままでと同じ 。 Coffee.cs コーヒー情報受け渡し用クラス。 Size.cs サイズ情報受け渡し用クラス。 DiffPriceプロパティはサイズによる価格の差額。 SelectedItem.cs 選択されたコーヒー、サイズ、入力された数量をまとめて受け渡すためのクラス。 同じ商品か確認するのはこのクラスがいいと思う。 IsSame()でおなじ商品(コーヒーとサイズが同じ)か否かをチェックする。 Index.cshtml.cs OnPost()にて、選択商品をリストに追加する際、SelectedItemクラスのIsSame()で同じ商品か否かをチェック。 Index.cshtml 練習問題9と同じように、Sessionオブジェクトから選択済み商品リストを取得して、表形式で表示。 複数ボタン <bu...

5月12日(火)1、2コマ目

イメージ
今日の予習 SessionExtensions.cs HttpContext.Sessionは byte[] int string しか格納することができない。XXクラスや、List<>のインスタンスのようないろいろなクラスのインスタンスを格納できるように、拡張クラスという仕組みを使ってSessionクラスを拡張する。 今日、やったこと Sessionオブジェクト 練習問題7 Sessionオブジェクト 練習問題8 拡張Sessionオブジェクト 今日のホワイトボード Sessionオブジェクト 練習問題7 正解例をあげておきます。 Program.cs Sessionオブジェクトを使うための設定が必要。 Ipad.cs iPad情報受け渡し用クラス。 Index.cshtml.cs SessionオブジェクトはHttpContext.Sessionでアクセス可。 HttpContext.Sessionは宣言、インスタンス生成不要。 Index.cshtml ここでもHttpContext.SessionでSessionオブジェクトにアクセス可。 Sessionオブジェクト 練習問題8 正解例をあげておきます。 Program.cs Sessionオブジェクトを使うための設定が必要。 練習問題7とおなじ 。 Item.cs 寿司情報受け渡し用クラス。 Index.cshtml.cs 松竹梅、数量は未選択、未入力の可能性あり。OnPost()の引数はnull許容に。 Index.cshtml 松竹梅はラジオボタン。同じグループから1つだけ選択可能。 同じグループ=name属性が同じ 拡張Sessionオブジェクト Sessionオブジェクトにデータを格納するためのメソッドは、HttpContext.Sessionには Set(string key, byte[] value) SetInt32(string key, int value) SetString(string key, string value) の3つしかなく、xxxクラ...

4月28日(火)1、2コマ目

イメージ
今日の予習 Sessionオブジェクトをつかうために Sessionオブジェクトを使う際はProgram.csを編集する必要がある。 今日、やったこと [おさらい]Razorページ+DB(DBNull、null許容型) Sessionオブジェクト 今日のホワイトボード [おさらい]Razorページ+DB(DBNull、null許容型) 正解例をあげておきます。 Group.cs cs_グループマスタテーブル情報受け渡し用クラス。 Item.cs cs_商品マスタテーブル情報受け渡し用クラス。 価格列はnullな可能性あり。Priceプロパティはnull許容型に。 GroupDAO.cs cs_グループマスタテーブルアクセス用クラス。 ItemDAO.cs cs_商品マスタテーブルアクセス用クラス。 価格列がnullな行がある。OracleDataReaderはnullな場合は、DBNullを返す。 図 DBがnull DataReaderはDBNullを貸す Index.cshtml.cs とくにややこしいことはないかと。 Index.cshtml ItemクラスのPriceプロパティはnull許容型。nullの場合は空白文字列を出力したい。 図 ?演算子(Null条件演算子)、??演算子(Null合体演算子) [Sessionオブジェクト]HTTPはステートレスなプロトコル HTTPは リクエスト レスポンス の1往復で完結するプロトコル。 よって、 複数のやり取りでデータを共有する仕組みはない 。 図 HTTPの仕組み [Sessionオブジェクト]リク...

4月21日(火)1、2コマ目

イメージ
今日、やったこと [おさらい] Razorページ+DBアクセス 接続文字列を設定ファイルappsettings.jsonで設定 今日のホワイトボード [おさらい] Razorページ+DBアクセス 前回につづき、今回も1年次のおさらい。今回はDBアクセスも行う。 C#からオラクルDBにアクセス オラクルが用意するODP.NETを使ってオラクルDBにアクセス。 ODP.NETを使うには、Oracle.ManagedDataAccess.dllが必要。 "参照の追加"でプロジェクトにOracle.ManagedDataAccess.dllへの参照を追加する。 ソースコードをあげておきます。 Program.cs 前回 とおなじ。 Group.cs cs_グループマスタ情報受け渡し用クラス。 Item.cs cs_商品マスタ情報受け渡し用クラス。 GroupDAO.cs cs_グループマスタテーブルアクセス用クラス。 ItemDAO.cs cs_商品マスタテーブルアクセス用クラス。 Index.cshtml.cs 検索ボタンクリック時はPOSTコマンドでリクエストされる。 POSTコマンドリクエスト時にはOnPost()メソッドが動く。 Index.cshtml とくにややこしいことはないかと。 接続文字列を設定ファイルappsettings.jsonで設定 いままでは各DAOクラスにて、接続文字列を定数として定義していた。 同じ内容を重複してコーディングするのはよくないので、一か所で定義したい。 ASP.Net Coreにはプロジェクトの設定ファイルappsettings.jsonがあるので、ここで定義。 図 appsessions.jsonに定義された接続文字列を読み込み appsettings.json 接続文字列は項目名"ConnectionStrings"にて定義。{ }内は  項目名:設定値 のフォーマット。 なお、...

4月14日(火)1、2コマ目

イメージ
今日、やったこと 1年次のおさらい 今日のホワイトボード 今日は1年次のおさらい。 練習1 正解例をあげておきます。 Program.cs Coffee.cs コーヒー情報受け渡し用クラス。 ToString()メソッドはインスタンス情報を文字列化する際によく使われるメソッド。 Index.cshtml.cs Webフォーム内(<form>と</form>のなか)の送信ボタンをクリックするとPOSTコマンドでサーバーをリクエスト。 POSTコマンドでリクエストされると、サーバーはOnPost()メソッドを実行する。 OnPost()メソッドの引数coffeeは選択したコーヒーのID。   Index.cshtml 選択コーヒー情報を表示する際、選択コーヒーがnullか否かで表示内容が異なる。 ifでnullチェックもいいが、null条件演算子(?)でnullか否かをチェックし、nullならnull合体演算子(??)で代替を出力する。 図 null条件演算子+null合体演算子 練習3 正解例をあげておきます。 Program.cs 練習1とおなじ。 Coffee.cs コーヒー情報受け渡し用クラス。 ToString()メソッドは 引数なし 引数あり(Sizeクラス型1つ) の2つある。 C#やJava(いまどきのプログラミング言語はほぼすべて)は引数の違いで呼び分け可能なら、同名のメソッドを複数つくることができる。 Size.cs サイズ情報受け渡し用クラス。 Index.cshtml.cs Index.cshtml ラジオボタンは同じグループ(name属性が同じ)から1つだけ選択可。 図 ラジオボタン 次回は 1年次のおさらい(DB利用版)。