投稿

2月3日(木)1コマ目

今日、やったこと Razorページ+DBアクセスの実技テスト(1回目) 今日のテスト 正解例をあげておきます。 Sales.cs 売上データを受け渡すためのクラス。 1商品の売上データ=1インスタンス。 SalesDAO.cs DBアクセス用クラス。 Index.cshtml.cs OnGet()メソッドで売上データを取得し、Salesプロパティ(List<Sales>)にセット。 Salesプロパティ経由でIndex.cshtmlに売上データを渡す。 Index.cshtml 表形式で売上データを表示する。   予告 次回も確認テストをします。

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

イメージ
Razorページ+DBアクセス 練習問題 プロジェクト名:db_ex1 Employeeクラス db_ex0と同じ。 EmployeeDAOクラス Index.cshtml.cs Index.cshtml  プロジェクト名:db_ex2 Employeeクラス db_ex0と同じ。 EmployeeDAOクラス Index.cshtml.cs Index.cshtml  プロジェクト名:db_ex3 Employeeクラス db_ex0と同じ。 EmployeeDAOクラス Index.cshtml.cs Index.cshtml  プロジェクト名:db_ex4 Summaryクラス EmployeeDAOクラス Index.cshtml.cs Index.cshtml  プロジェクト名:db_ex5 Summaryクラス db_ex4と同じ。 EmployeeDAOクラス Index.cshtml.cs Index.cshtml  プロジェクト名:db_ex6 Employeeクラス db_ex0と同じ。 EmployeeDAOクラス Index.cshtml.cs Index.cshtml  以上、解答例でした。 今日のホワイトボード 練習問題のヒントを少し。 Listからforeachに要素を順にとりだす 〇キーワードvar 変数itemにはList<Item>型のlistの要素を1つずつ順に代入される。 listの要素はItemクラス型なので、変数itemに代入される値もItemクラス型。 宣言のさい、代入値から明らかに型が決まる場合、型を指定せずvarで宣言可能。 図 foreachで要素を順にとりだす SQLのあいまい検索 ワイルドカードを忘れていると思い、おさらい。 図 SQLのあいまい検索 予告 次回あたりから確認実技テストをやります。

1月27日(木)1コマ目

イメージ
今日、やったこと 前回のおさらい(DB検索結果を表示する) DB検索+Razorページの練習問題 今日のホワイトボード Listクラス たびたび、くどいほど説明してきたListクラスです。 配列のように複数用の要素をひとまとめにできるクラスです。 図 Listクラス XXクラス型の変数には参照情報が代入されます。C言語的に言えば、ポインタ変数です。 キーワードvar 変数宣言時に、 代入値から明らかに型がわかる場合は型名のかわりにvarで宣言できます 。 図 varで変数宣言 Listから要素を取り出すforeachでよく使います。  List<Employee> list = new List<Employee>();  // このlistの要素はEmployee型  foreach( var emp in list)   // 変数empの代入値はEmployee型なので、varで宣言可  { プロジェクト:db_ex0 おさらいのためにCS_部署マスタテーブルを全件検索して表示するdb_ex0プロジェクトを作成しました。 ソースをのせておきます。 Deptクラス(Dept.cs) 部署情報受け渡し用クラス(構造体のようなモノ)。1部署=1インスタンス。 DeptDAOクラス(DeptDAO.cs) CS_部署マスタテーブルアクセス用クラス。 Index.cshtml Index.cshtml.csのDeptプロパティ(部署情報検索結果)を表形式で表示。 Index.cshtml.cs OnGet()でDeptDAOを使って部署マスタ全件検索。結果をDeptプロパティにセット。 課題 db_ex1~db_ex6 基本的には 実行するSQL 検索結果を取り出し 表形式で表示 が変わるだけです。 予告 近日中に実技テストをします。

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の略。 各クラスの関係、役割分担は下図のとおり。 ...

1月20日(木)1コマ目

イメージ
今日、やったこと コードブロック、コードナゲットのおさらい ~.cshtml.csから~.cshtmlにデータを渡す 今日のホワイトボード コードブロック、コードナゲットのおさらい ~.cshtmlは一見、HTMLファイルと同じですが、コードブロック(@{ }や@for(){ }など)を使うとC#のコードが書けます。  またコードナゲット(@変数名)を使うとHTMLにC#の変数の値を埋め込むことができます。 おさらい1 6行1列のテーブルを作成 図 おさらい1 行(<TR></TR>)の繰り返しです。 背景色の設定は奇数行にbgGreenクラスを、偶数行にはbgBlueクラスを指定します。 正解例(Index.cshtml) おさらい2 4行4列のテーブル作成 図 おさらい2 行(<TR></TR>)とセル(<TD></TD>)の繰り返しです。 3の倍数のときにbgGreenクラスを指定します。 正解例(SecondPage.cshtml) ~.cshtml.csから~.cshtmlへデータを渡す ~.cshtml.csのプロパティ経由で~.cshtmlに値を渡すことができます。 言い換えれば、~.cshtmlは~.cshtml.csのプロパティにアクセスすることができます。 図 ~.cshtmlと~.cshtml.cs 〇~.cshtml.cs プロパティを用意 。 OnGet()メソッド内でプロパティを初期化しています。 OnGet()メソッドはHTTPのGETコマンドでリクエストされたときに実行するメソッドです。 Webブラウザからこのページをリクエストすると(http://localhost:...

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

イメージ
今日、やったこと C#でWebアプリケーション(Razorページ) 今日のホワイトボード Webアプリケーションとは 広義ではクライアントとサーバー間の通信プロトコルがHTTP(またはHTTPS) を使うクライアント・サーバーアプリケーション。 狭義では通信プロトコルがHTTP(またはHTTPS)に加えて、クライアントにWebブラウザを使うクライアント・サーバーアプリケーション。 図 Webアプリケーション HTMLだけでは HTMLには繰り返しや条件分岐ができないため、動的なページ(表示ごとに内容が異なる)の生成ができない。 そこで、動的にページ生成をする仕組みがいろいろと用意されている。これから使うRazorページもその1つ。 Razorページを使う ①プロジェクト作成 VisualStudioを起動して「ASP.Net Coreアプリケーション」のプロジェクトを作成する。 図 「ASP.Net Coreアプリケーション」プロジェクト作成 作成する際に以下の画面で 「HTTPS用の構成」のチェックをはずす ことに注意。 図 「HTTPS用の構成」のチェックをはずす ②Startup.cs編集 「ASP.Net Core アプリケーション」プロジェクトは、デフォルトではRazorページは使うことができない。Startup.csを編集してRazorページを使えるようにする。 図 Startup.cs編集 ③Razorページ追加 RazorページはPagesフォルダ以下に配備する ように決められている。 まずはPagesフォルダを作成。 次に、PagesフォルダにRazorページを追加する。 ...

1月13日(木)1、2コマ目

イメージ
今日、やったこと HTMLのフォーム 今日の課題 HTMLのフォームを作成する課題をやりました。 図 課題のヒント 正解例をあげておきます。