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を渡す=>データベースアクセスのプログラムが必要
といろいろとやらなければならないことがある。

が、いずれもDBアクセスには必要なモノなので、マイクロソフトはADO.NETというライブラリ(フレームワーク)を用意している。

ADO.NETはC#自体にないDBアクセス機能を補完してくれる。

さらに、オラクルもオラクルDBに特化したODP.NETを用意している。

これらを使えば、DBアクセスするプログラムを作ることができる。

ただし、ODP.NETのルールに従ってプログラミングする必要がある。
図 ODP.NET

ODP.NETを使うために

ODP.NETを使うには以下を行う必要があります。
①プロジェクト作成時にOracle.ManagedDataAccess.dllへの参照を追加
②usingディレクティブを使って
  •  Oracle.ManagedDataAccess.Client
  •  Oracle.ManagedDataAccess.Types
を参照できるようにする 

OracleConnectionクラス

  • DB接続を担当
  • コンストラクタで接続文字列(どのDBにどのユーザーで接続するか)を渡す
  • Open()メソッドでDB接続
  • Close()メソッドでDB切断

OracleCommandクラス

  • SQL実行を担当
  • コンストラクタで実行するSQL、OracleConnectionのインスタンスを渡す
  • ExecuteReader()メソッドでSQL実行

OracleDataReaderクラス

  • 検索結果取り出し担当
  • 1行ずつアクセス
  • Read()メソッドで取得できる行を移動

サンプルプログラム

CS_グループマスタを全件検索するプログラムです。


OracleDataReaderクラスを使って検索結果取り出し

OracleCommandのExecuteReader()メソッドを実行したら、検索結果にアクセスするためのOracleDataReaderクラスのインスタンスが取得できます。

このOracleDataReaderは検索結果を1行ずつ移動して結果を取り出します。

図 Read()メソッドでアクセスできる行を移動
各列の値を取り出すには列名を指定して取得します。
図 OracleDataReaderで各列の値を取り出し

検索結果は数値や文字列等いろいろな型なので、ToString()メソッドで文字列に変換したり、Convert.ToInt32()メソッドでint型に変換します。

練習問題

CS_商品マスタ、CS_グループマスタを使って全商品の商品情報(グループ情報も含む)を検索、表示します。


次回は

ODP.NETの続きです。

このブログの人気の投稿

10月3日(木)1コマ目

10月27日(木)1コマ目

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