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_部署マスタテーブルに対応するクラス。


[おまけ]Employee.cs

cs_従業員マスタテーブルに対応するクラス。


[おまけ]Attendance.cs

cs_出勤データテーブルに対応するクラス。


次回は

ODP.NET Coreのテスト第2回目。

練習問題3のつづき。