投稿者 tecc  (社会人) 投稿日時 2010/6/28 10:01:35
 .NET Framework 3.5 SP1

いつもこの問題で悩んでしまいます。

データベースクラス
このクラスでは、データベースへの接続・切断の状態管理用クラスです。

業務ロジッククラス
データベースクラスと連携し、必要な値を生成・加工・変更するクラスです。

フォームクラス
業務ロジッククラスの作成元のクラスです。
このクラスでは、フォーム上の各コントロールへの値セットや変更を行います。

質問:業務ロジッククラスからデータベースクラスへのパラメータクエリを使用し
DML文等を作成する場合はどのようにしたら良いでしょうか?

このような3つのクラスがあり、データベースから値を得たい場合
業務ロジッククラスからDML文を作成しクエリを発行しなければ
ならないと思います。

この時、データベースに対し業務ロジック側からパラメータクエリで
DML文等を作成したいのですが、

例えば、OleDbを使用しているとするならばOleDbCommandに対しパラメーターを
追加しなけばなりません。
その場合に、業務ロジック側から作成するのであればOleDbCommandのスコープは
最大限に拡げねばならなくなります。

かといってデータベースクラスにパラメータクエリ用のメソッド等を用意した場合
データベースのフィールドを直に指定しなければなりません。
そのようにすると再利用性が失われる為好ましくありません。

何か良い方法やパターンはありますか?
宜しく御願いします。