投稿

12月, 2025の投稿を表示しています

12月25日(木)2コマ目

イメージ
今日、やったこと [確認テスト 解説]ODP.NET Core 確認テスト2 [練習問題]ODP.NET Core 練習問題3 今日のホワイトボード Concole.Write()とConsole.WriteLine() Console. Write() は引数を出力後、 改行しない 。 Console. WriteLine() は引数を出力後、 改行する 。 図 Console.Write()とConsole.WriteLine() [確認テスト 解説]ODP.NET Core 確認テスト2 正解例をあげておきます。 [練習問題]ODP.NET Core 練習問題3 正解例をあげておきます。 まずはデータ受け渡し用クラスたち。前回のおたすけサイトに掲載済み。 [データ受け渡し用クラス]Dept.cs ここに記載済み。 [データ受け渡し用クラス]Employee.cs ここに記載済み。 [データ受け渡し用クラス]Attendance.cs ここに記載済み。 問1~問11の各問で作成する関数だけ記載します。 問1 問2 問3 問4 問5 問6 問7 問8 問9 問10 問11 次回は 年明け。 Webをやり始めます。  よいお年を。

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

イメージ
今日、やったこと データベースとC#の日付型 今日のホワイトボード オラクルとC#の日付型 オラクル で日付データを扱うには、 Date型 を使う。 ※Data型以外にも日付用の型はある。 C# で日付データを扱うには、 DateTime型 を使う。 ※DateTime型以外にも日付用の型はある。 図 オラクルのDate型とC#のDateTimeクラス 日付データ同士の比較 DBも、OSも日付データは 基準日時からの経過秒数 。 過去に戻れば小さな値、未来に進めば大きな値。 よって、大小比較ができる。 図 日付データの大小比較 日付データで検索 その1 日時列がxxxx年xx月xx日 xx時xx分より前のデータを検索したい。 ①OracleParameterのコンストラクタ第2引数は OracleDbType.Date 。 ②パラメータマーカーにはC#のDateTimeクラスのインスタンスを渡す 図 Date型の列とパラメータマーカー Program.cs 日付データで検索 その2 日時列がxxxx年xx月xx日のデータを検索したい。 xxxx年xx月xx日は  日付データがxxxx年xx月xx日 0:00:00以降    かつ  日付データがxxxx年xx月xx日 23:59:59以前 の範囲。 図 12/12の場合 Diary.cs 1インスタンス = cs_日付用データテーブル1行分に対応するクラス。 Program.cs 日時列の検索結果はDairyクラスのDateTime型のプロパティに代入。 下図はDateTime型のインスタンスの生成法を紹介。 コンストラクタで生成 Parse()メソッドで文字列から生成 ODP.NET Core 練習問題3 下図のように、1問につき、クラスを1こ追加。 追加したクラスに問題で指定されたメソッドを実装。 ※メソッドにはstaticをつけて!! 図 練習問題のすすめかた Program.csでは、クラス名.メソッド名でメソッド呼び出し。 戻り値(検索結果)を表示。 [おまけ]Dept.cs cs_部署マスタテーブルに対応するクラス。 [おまけ]Employ...

12月11日(木)2コマ目

イメージ
今日、やったこと [確認テスト]ODP.NET Core 確認テスト1 今日のホワイトボード コンソールにて、入力されたデータを取得 下図のように、コンソールに  ”XXXを入力してください:” と表示し、入力された内容を取得する。 図 コンソールのイメージ 入力値の取得はConsole.ReadLine() が使える。 ReadLine()の戻り値は入力された値。型はstring型。 次回は 確認テストの解説。 更新系SQLの実行。  

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

イメージ
今日、やったこと [練習問題]ODP.NET Core 練習問題2 [練習問題 解説]ODP.NET Core 練習問題2 Listクラスをつかう 今日のホワイトボード [練習問題 解説]ODP.NET Core 練習問題2 正解例をあげておきます。 練習1 データがない = NULL => 検索結果はDBNull DBNullと比較は DBNull.Value.Equals()。 練習2 練習1の改造版。 練習3 検索結果は1行1列になるはず -> ExecuteScalar()でSQL実行、検索結果取得 練習4 練習3とおなじ。 練習5 SQLのcount()関数の引数に注意。 図 SQLのcount()関数の引数 練習6 select 10 + 20 => 30 select 10 + NULL => NULL select NULL + NULL => NULL Listクラスについて Listクラスは配列と同じように複数のデータをまとめて扱うことができる。 要素数を意識しなくていいので、配列より使い勝手がいい。 図 配列とListクラス Listクラスをつかう まずはListクラス型の変数を宣言し、インスタンス生成。 Listクラス型の変数を宣言する際、Listクラスに格納する要素の型を< >内で指定。 図 Listクラスを使う サンプルプログラム Group.cs cs_グループマスタ1件=1インスタンス。 GroupDAO.cs cs_グループマスタテーブルにアクセスするためのクラス。 findAll()...

12月4日(木)2コマ目

イメージ
今日、やったこと 単一値を返すSQLを実行(ExecuteScalar()メソッド) 今日のホワイトボード 単一値を返すSQLを実行 検索結果が1行1列(=単一値)なのに、検索結果を取得するために、 ①OracleDataReaderのRead()で検索結果1行目に移動 ②OracleDataReaderに列名を指定して検索結果を取得 のようにいろいろやるのはめんどくさい。できればSQL実行メソッドの戻り値が検索結果であってほしい。 図 ExecuteScalar()メソッド これを実現するのが、ExecuteScalar()メソッド。 厳密には、 ExecuteScalar()メソッドは検索結果の1行目1列目を返す 。 ソースコードはこちら ExecuteScalar()練習 下図をつくった。 図 練習問題 正解例をあげておきます。 ①全商品の最高値を検索 ②全商品の価格の平均値を検索 ③指定されたグループの商品数を検索 where句の検索条件のグループ名はパラメータマーカーで。 ④指定された商品の売上金額を検索 where句の検索条件の商品名はパラメータマーカーで。 次回は 練習の解説。 いままでの練習問題。 できれば、更新系SQL。