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の続きです。







