1|2|3■pubsデータベースの読み取りプログラム以上でプログラムからselect文を実行し、結果を表示するためのパーツは揃った。ここまでに示したコードの断片をつなぎ合わせた実行可能なプログラムは次のようになる。このサンプル・プログラムは、pubsデータベースのpublishersテーブルから、pub_idカラムとpub_nameカラムの値を取得し、それを画面に表示する。reader.csselect文を実行するサンプル・プログラムreader.csreader.csのダウンロードこのプログラムをコンパイルし、実行すると次のような結果になるはずだ。記述方法のバリエーションいま示したreader.csは、本連載では初めてのプログラムとなるため、もう少し詳しく見ておこう。このプログラムでは、次のようにしてコンストラクタで必要なデータをすべて指定し、各オブジェクトを作成していた。conn);これは、次のように、パラメータを取らないコンストラクタを使用して“素”のオブジェクトだけをまず作成しておき、後で必要なデータを対応するプロパティから設定しても同じだ。sqlStr;あるいは、SqlConnectionクラスにあるCreateCommandメソッドを利用して、次のように記述することもできる。=sqlStr;CreateCommandメソッドは、SqlConnectionオブジェクトをセットしたSqlCommandオブジェクトを作成してくれるため、これに関する記述を省略することができる。同じ内容を記述するのにも、こういったたくさんのバリエーションがあり得るということを覚えておいていただきたい。どの記述方法が優れているかは、恐らく人それぞれだ。通常の開発プロジェクトでは、システムで使用するデータベース製品は早い段階で決まっているはずなので不要かもしれないが、オブジェクトの「インターフェイスへのキャスト」を利用して、データ・プロバイダ固有クラスの使用を最小限に抑えたコーディングも可能だ。「■.NETデータ・プロバイダの定義」で述べたように、例えばSqlConnectionクラスはIDbConnectionインターフェイスを実装しているので、SqlConnectionオブジェクトはそのままIDbConnection型へとキャストすることができる。SqlConnection(connStr);変数connを通じて、「conn.CreateCommand();」のようにSqlConnectionクラスのメソッドを呼び出すことができる。このインターフェイスへのキャストを最大限に利用して、先ほどのサンプル・プログラムreader.csは次のように書き直すことができる。ireader.csインターフェイス・ベースで記述したサンプル・プログラムireader.cs太字がインターフェイスの利用に関する部分。Server用の.NETデータ・プロバイダ固有のクラスは、SqlConnectionクラスだけだ。Server用の.NETデータ・プロバイダ固有のクラスは、SqlConnectionクラスだけだ。Accessに変更する場合でも、SqlConnectionをOleDbConnectionと書き換えるだけでよい(もちろん使用する名前空間と、接続文字列は修正する必要がある)。以上、今回は.NETデータ・プロバイダと、それを使用したselect文の実行について解説を行った。次回は、今回のレコードの取得に引き続き、.NETデータ・プロバイダを使用したレコードの挿入・更新・削除などから解説する予定である。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。