投稿

2月, 2026の投稿を表示しています

2月26日(木)3コマ目

今日、やったこと ASP.NET Core + DB更新 [練習問題]ASP.NET Core + DB更新 今日のホワイトボード ODP.Net CoreのSQL実行用メソッド OracleCommandが持っているSQL実行用メソッド。 作成したサンプル 下図を作成。 Content.cs cs_更新テストテーブルデータ受け渡し用クラス。 ContentDAO.cs cs_更新テストテーブルアクセス用クラス。 更新系SQL実行の際は、ExecuteNonQuery()で実行 。 Index.cshtml.cs とくにややこしいことはないかと。 Index.cshtml こちらもややこしいことはないかと。 [練習問題]ASP.Net Core + DB更新 正解例をあげておきます。 Color.cs cs_更新_赤青黄テーブルデータ受け渡し用クラス。 ColorDAO.cs cs_更新_赤青黄テーブルアクセス用クラス。 Index.cshtml.cs Index.cshtml 次回は 就活イベントです。  

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

今日、やったこと [確認テスト]複数ボタン+DBNull+null許容型 今日の確認テスト 正解例をあげておきます。 SchoolData.cs cs_市町村別学校数テーブルのデータを受け渡すためのクラス。 各プロパティは、DBがnullの場合はnullを代入できるように、null許容型に。 SchoolDataDAO.cs cs_市町村別学校数テーブルにアクセスするためのクラス。 Index.cshtml.cs OnPost()の2つ引数は btnは押されたボタンのvalue属性値が代入 -> 押されたボタンを判断できる schoolcountは検索条件(学校総数) -> 未入力の場合あり -> null許容型に です。 Index.cshtml null許容型変数を表示する際に注意。 次回は DB更新。

2月25日(水)2、3コマ目

イメージ
今日、やったこと 複数ボタン [練習問題]複数ボタン 今日のホワイトボード Webフォームに複数のボタンがある場合 大前提として、ボタンが複数あっても、同時に複数をクリックすることはできない。 図 複数ボタン 〇ボタン1、ボタン2 ボタン1、ボタン2はname属性を同じ、value属性を別々にした。 OnPost()メソッドにname属性と同名の引数を1つ用意。 どちらかがクリックされると、この引数にクリックされたボタンのvalue属性値が代入される。 〇ボタン3、ボタン4 ボタン3、ボタン4はname属性を別々にした。 OnPost()メソッドの引数には、クリックされてないボタンのname属性と同名の引数にはnullが代入されるようにnull許容にした。 複数ボタン サンプル ソースコード Index.cshtml ボタン1、ボタン2は同じname属性。 ボタン3、ボタン4は別々のname属性。 Index.cshtml.cs OnPost()メソッドには ボタン1、ボタン2用の引数btnA ボタン3用の引数btn3 -> クリックされない場合はnullに -> int?でnull許容型 ボタン4用の引数btn4 -> クリックされない場合はnullに -> int?でnull許容型 の3つの引数を用意。 [練習問題]複数ボタン 正解例をあげておきます。 WeatherData.cs cs_山梨気象データテーブルのデータ受け渡し用クラス。 WeatherDataDAO.cs cs_山梨気象データテーブルアクセス用クラス。 Index.cshtml.cs クリックされたボタンに応じて検索。 なお、検索条件を入力欄は未入力の場合はOnPost()の引数にnullが代入されるように、null許容型に。 Index.cshtml 気象データ表示時に、nullの場合は空白文字列を出力。 空白文字列は "" のかわりに string.Empty を利用。 次回は 練習問題の解説。で、テスト。

2月24日(火)3コマ目

イメージ
今日、やったこと null許容型+DBNull 今日のホワイトボード 作りたいもの cs_商品マスタテーブルは価格列がnullなデータがある。 nullの場合、空白を表示したい。 図 作りたいもの ポイント DBのデータがnullの場合、OracleDataReaderはDBNullを返す DBNullか否かで、代入値を切り替えたい 表示の際、nullか否かで、表示値を切り替えたい ソースコード Item.cs 価格列の値を代入するPriceプロパティは、DBの値がnullの場合はnullを代入できるようにnull許容型にしている。 ItemDAO.cs 価格列の値を取り出す際、 データがnullの場合はOracleDataReaderはDBNullを返す 。 DBNullか否かで、Priceプロパティに代入する値を切り替え。 図 価格列がDBNullか否かで切り分け Index.cshtml.cs とくにややこしいことはないかと。 Index.cshtml null条件演算子でPriceプロパティがnullか否かをチェック。 null合体演算子で、非nullなら代入値.ToString()で代入値を文字列か、nullなら空白文字列を表示する。 図 Priceプロパティがnullか否かで切り分け 次回は 練習問題。

2月20日(金)3、4コマ目

イメージ
今日、やったこと null許容型 今日のホワイトボード 作りたいもの 前回作った価格帯で検索するWebアプリケーションを、下図のように検索条件の入力状況で3パターンの検索ができるようにしたい。 図 作成する検索アプリ 未入力か、否かを判断したい 検索条件が未入力の場合、OnPost(int price1, int price2)の各引数には0が代入される。 これでは引数が0の時は 0が入力された 未入力 のどちらで、 未入力かどうかは判断できない 。 int型のような値型にはnullを代入することができないが、null許容型にするとnullを代入することができる 。 引数をnull許容型にすれば、未入力の場合はnullが代入されて判断することができる。 null なにもない状態。 下図の変数str2にはなにも代入されていない。これがnull。 図 null 値型と参照型 string型やxxxクラス型は変数に参照情報が代入される。こんな型が参照型。 nullが代入できる。 <=今は警告 int型やdouble型は変数に代入値が代入される。こんな型は値型。 図 参照型と値型 null許容型 参照型はnullが代入できた。->今はnullを代入すると警告 値型はnullを代入できない。 変数宣言時に型に?をつけると、nullが代入できるnull許容型になる。 図 null許容型 null許容型の合体演算子 ?? null許容型変数が 非nullのときは値を返す nullのときは別の値を返す 3項演...

2月17日(火)3コマ目

イメージ
今日、やったこと OnPost()をつかう 今日のホワイトボード 前回のおさらい 前回 、Webフォームで入力、選択したデータをOnPost()メソッドで受け取って処理をした。 Webフォーム内(<form></form>)の<select>タグや<input>タグのname属性値と、選択・入力したvalue属性値(入力値もvalue属性値)のペアがサーバーに送信される。 サーバー側はOnPost()メソッドの引数で選択・入力値を受け取ることができる。 OnPost()メソッドの引数名とname属性値を一致させることがポイント。 図 WebフォームとOnPost()メソッド xxx円以上の商品を検索 選択・入力値は1こ。 図 xxx円以上の商品を検索 Group.cs cs_グループマスタテーブル情報受け渡し用クラス。 Item.cs cs_商品マスタテーブル情報受け渡し用クラス。 ItemDAO.cs cs_商品マスタテーブルアクセス用クラス。 検索メソッドはここに。 Index.cshtml.cs OnPost()の引数は検索条件入力用<input>タグのname属性値と一致させること。 Index.cshtml <form>を使うときは、@AddTagHelperを忘れずに 。 xxx円以上、xxx円以下の商品を検索 選択・入力値は2こに増えるが、OnPost()の引数が2つになるだけ。 <input>タグのname属性値とOnPost()の引数名を一致させること。 図 xxx円以上xxx円以下の商品を検索 Group.cs cs_グループマスタテーブル情報受け渡し用クラス。 "xxx円以上の商品を検索"とおなじ Item.cs cs_商品マスタテーブル情報受け渡し用クラス。 xxx円以上の商品を検索"とおなじ ItemDAO.cs cs_商品マスタテーブルアクセス用クラス。 検索メソッドはここに。 Index.cshtml.cs OnPost()の引数は検索条件入力用<input...

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

イメージ
今日、やったこと [確認テスト 解説]ASP.NET Coreクエリパラメータ+DBアクセス Webフォーム(HTTPのPOSTコマンド)  今日のホワイトボード [確認テスト 解説]ASP.NET Coreクエリパラメータ+DBアクセス 前回のおたすけサイトにも書いてますが、採点して気が付いたこと。 〇必要な検索パターン 単純に考えると  ⓪全件検索  ①xxx円以下で検索  ②xxx円以上、xxx円以下で検索  ③xxx円以上で検索 の4パターン。 ただ、”500円以下で検索”に、「商品の価格は0円以上であることを前提としてよい」とあるので、①の”xxx円以下で検索”は②の”xxx円以上、xxx円以下で検索”で対応できる。 よって、以下の3パターン。 全件検索 xxx円以上、xxx円以下で検索 xxx円以上で検索 図 検索パターンを整理すると 〇メソッドのオーバーロード C言語にはない機能。 関数の引数の数、型で呼び分けできるなら、同名のメソッド(関数)を複数作ることができる。 図 メソッド(関数)のオーバーロード これをメソッド(関数)のオーバーロード(多重定義)と呼んでいる。 C#やJavaのような、C言語よりあとに登場したたいていの言語で使える。 〇クエリパラメータ クライアントがサーバーをリクエストする際のURLにパラメータを含める仕組み。 ?以降がクエリパラメータ 。 複数のパラメータが必要な場合は&でつなぐ 。 クエリパラメータは   パラメータ名=値 のフォーマット。 図 クエリパラメータ これから先はクエリパラメータを使う機会が...

1月29日(木)2コマ目

今日、やったこと [確認テスト]ASP.NET Core クエリパラメータ + DBアクセス 今日の確認テスト 正解例をあげておきます。 Index.cshtml "500円以下の商品"は0以上、500以下の価格帯で検索できる。 クエリパラメータも0と500を送信すれば、"500円以上、1000円以下"や"1000円以上、2000円以下"と同じように扱うことができる。 そうすると、例外は"2000円以上"のみ。 Index.cshtml.cs 検索パターンは xxx円以上、xxx円以下 xxx円以上 の2パターン。 気になったこと① ”2000円以上の商品”のクエリパラメータを  price1=2000&price2=9999 のように、上限値を仮定している方がおられました。 が、価格の上限値についてはなにも指定がないため、仮定で設定するのはまずいです。 気になったこと② クエリパラメータは   パラメータ名=値 です。 "500円以上、1000円以下の商品"のクエリパラメータに  price>=500&price<=1000 のように条件式を書いている方がちょこちょこおられました。 くどいですが、パラメータマーカーは  パラメータ名=値 です。条件式は書けません。 次回は HTTPのPOSTコマンド(Webフォーム)