投稿

11月, 2022の投稿を表示しています

12月1日(木)1コマ目

イメージ
今日、やったこと 確認テスト2の解説 複数のパラメータマーカー 今日のホワイトボード 確認テスト2の解説 前回やった確認テスト2の解説です。 問1 Groupクラス型のGroupプロパティを追加する問題です。 図 クラスの確認テスト3 問1 問2 コンストラクタでGroupプロパティをnullで初期化する問題です。 図 クラスの確認テスト3 問2 問3 Userクラスに引数を使って各プロパティを初期化する問題です。 図 クラスの確認テスト3 問3 問4 Show()メソッドでGroupプロパティの値を出力できるように改造する問題です。 図 クラスの確認テスト3 問4 問5 Userクラスの変数taroを宣言し、Userクラスのインスタンスを生成する問題です。 ①まずは、1つ1つ順番にやっていくやり方。 図 クラスの確認テスト3 問5 ① ②つぎに、Userクラス型の変数宣言、インスタンス生成を1行でやってしまうやり方。 図 クラスの確認テスト3 問5 ② ③さらに、Userクラスの引数ありコンストラクタを使ってインスタンス生成時にプロパティの初期化を行うやり方。 Groupクラスのインスタンスを使いまわしするならこちらです。 ...

11月25日(金)1、2コマ目

イメージ
今日の予習 グループIDで検索する グループIDが1の商品を検索する場合、SQLの検索条件は   WHERE グループID= 1 しかしながら、常にグループIDが1の商品を検索するとは限りません。往々にして、 検索条件は変わります 。 この毎回変わる検索条件をC#のプログラムで作るには 文字列結合でSQLを作る パラメータマーカーで置き換え、実行時に値をセット の2種類があります。一般的にはパラメータマーカーを使います。 コメントのみのソースコードのひな型をあげておきます。 今日、やったこと [確認テスト]クラスの確認テスト2 パラメーターマーカーを使う 今日のホワイトボード パラメーターマーカーを使う SQLの検索条件のように実行毎に値を変えたい場合は、変更箇所にパラメータマーカーを仮の値として配置します。 SQL実行前にパラメータマーカーにセットする値を指定することで、SQL実行毎に異なる検索条件で検索することができます。 図 パラメータマーカーを使う OracleParameterクラス SQL中のパラメータマーカーに対応するようにOracleParameterクラスのインスタンスをOracleCommandのParametersプロパティに追加。 このOracleParameterクラスのインスタンス経由でSQL中のパラメータマーカーに値をセットする。 サンプルソース 練習1 図 パラメータマーカー 練習1 練習2 図 パラメーターマーカー 練習2 次回は パラメータマーカーを引き続きやります。

11月24日(木)1コマ目

イメージ
今日、やったこと ODP.NETを使った検索の練習  今日のホワイトボード 練習1 簡単な全件検索です。 練習2 並び順の指定があり。 図 練習2 練習3 検索条件あり。 図 練習3 練習4 グループ化あり。 select句にグループ関数があります。 OracleDataReaderで検索結果を取り出す際、列名を指定しますが、グループ関数の列はどうすればいい? ありがちパターンとして、別名をつけて対応します。 図 select句の関数列 [注意!!]OracleCommandにSQLを指定する際に SQLが長くなると、視認性をあげるために途中で改行します。 改行はしているものの、+演算子で文字列を結合しているだけです。 結合後の文字列がどうなるかを考えてください。 図 改行してSQLを指定(文字列結合) 次回は テストします。

11月18日(金)1、2コマ目

イメージ
今日の予習 C#+ODP.NETで全件検索するプログラム(のひな型) ODP.NETを使うには ①プロジェクトにODP.NET(OracleManagedDataAccess.dll)への参照を追加 ②ODP.NETの2つの名前空間を参照する using Oracle.ManagedDataAccess.Client using Oracle.ManagedDataAccess.Type 今日、やったこと [確認テスト]クラスの確認テスト1の解説 ODP.NETを使って全件検索 今日のホワイトボード クラスの確認テスト1の解説 問1 プロパティを作る問題です。 図 クラスの確認テスト1 問1 問2 コンストラクタ(引数なし)を作る問題です。 図 クラスの確認テスト1 問2 問3 コンストラクタ(引数あり)を作る問題です。 図 クラスの確認テスト1 問3 問4 メソッドを作る問題です。 図 クラスの確認テスト1 問4 問5 メソッドを作る問題です。 図 クラスの確認テスト1 問5 ODP.NETとは そもそもDBアクセスするには ネットワーク経由でDBアクセス=>ネットワークのプログラムが必要 データベースにSQLを渡す=>データベースアクセスのプログラムが必要 ...

11月17日(木)1コマ目

イメージ
今日、やったこと クラスの練習問題(C#練習問題4)の解説 [確認テスト]クラスの確認テスト1 今日のホワイトボード C#練習問題4の解説 4-6 EmployeeクラスのインスタンスとDivisionクラスのインスタンスはメモリ上では以下のような関係になっています。 図 4-6 EmployeeクラスとDivisionクラスの関係 4-9 "管理職"または"管理職ではない"の表示はIsManager()メソッドの戻り値で決まります。ifで条件分岐をするとプログラムが長くなる、処理内容は短いので、3項演算子が便利です。 図 4-9 3項演算子 次回は 今日やったテストの解説とC#+データベースをやります。 

11月11日(金)3、4コマ目

イメージ
今日、やったこと [練習問題]クラスの練習問題1~3 今日のホワイトボード bool型について C#にはbool型があります。 bool型はtrue、falseのみ扱うことができます。 図 bool型 練習問題4の4-9で戻り値がbool型のIsManager()メソッドを作ってもらいます。 図 練習問題4の4-9のIsManager()メソッド if()の条件式 C言語ではif()の( )内が 0以外なら真 0なら偽 です。 C#(Javaも)ではif()の( )内が trueなら真 falseなら偽 です。 図 C言語のifとC#のifの違い 練習問題4 正解例 4-4 Divisionクラス(Division.cs) 4-5 Employeeクラス(Employee.cs) 4-6 Ex4_6クラス(Ex4_6.cs) 4-7 Ex4_7クラス(Ex4_7.cs) 4-8 Ex4_8クラス(Ex4_8.cs) 4-9 Employeeクラス(Employee.cs) Ex4_9クラス(Ex4_9.cs) 次回は 練習問題4の解説とクラスのテストをします。

11月10日(木)1コマ目

今日、やったこと [練習問題]クラスの練習問題1~3 今日のソースコード C#練習問題3 3-4 Ex3_4クラス(Ex3_4.cs) C#練習問題4 4-1 Employeeクラス(Employee.cs) 4-2 Ex4_2クラス(Ex4_2.cs) 4-3 Ex4_3クラス(Ex4_3.cs) 次回は 練習問題の続き+練習問題4の解説をします。 ぼちぼち、クラスのテストをします。

11月4日(金)1、2コマ目

イメージ
今日、やったこと [練習問題]クラスの練習問題1~3 今日のホワイトボード 配列の要素にクラスのインスタンスを代入する  配列の要素がint型やdouble型の値でもクラスのインスタンスでも基本的に変わりはありません。代入されるのが、値(int型やdouble型の場合)か参照情報(クラスのインスタンスの場合)が異なるだけです。 生成したインスタンスへの参照情報を一旦、変数に代入し、その変数を配列に代入すると以下のように。 図 一旦、変数に代入する ソースコード 一旦変数に代入しなくても、インスタンスの参照情報を直接代入することもできます。 図 直接代入 ソースコード また、配列の初期値はわかっているので、配列宣言時に要素の初期化まですることもできます。 ソースコード 次回は 練習問題の続きをやってもらいます。