0

私は、特定の接続文字列を想定した多数のデータベース アクセス関数を持っています。私のアプリケーション内で私は呼び出します

myList = DB_MyTable.GetTableItems()

そして、GetTableItems()私は次のようなものを持っています

Dim connection As SqlConnection = MyDB.GetConnection

したがって、接続文字列はコード内の 1 か所にあり、メソッドを呼び出してそれを取得します。

私が今直面しているのは、同じデータベース関数を再利用したいということですが、接続文字列は異なります。すべての関数はスクリプトから生成されるため、簡単に書き直すことができDB_MyTable.GetTableItems()ますが、メイン アプリケーション コード内では、使用する接続文字列を知る必要があるすべての関数呼び出しを処理する必要があります。

引数をGetTableItems()次のように変更してみました:

Public Shared Function GetTableItems(Optional ByVal useThisString as String = MyDB.GetConnection) As List(Of MyItems)

デフォルトで、ほとんどのコードで既に使用している文字列を渡すことができることを期待していましたが、デフォルト値は定数式でなければならないというエラーが発生しました。これは、特定の接続文字列をいたるところにペッパーすることを意味しますが、これはやりたくありません。

私が求めていることを達成する方法はありますか、または接続文字列を必須の引数にして、アプリケーション内のすべての呼び出しを新しい署名と一致するように変更する必要がありますか?

いつもありがとう!

4

1 に答える 1

1

デフォルト値を空の文字列にすることはできますか? 次に、関数で useThisString 変数が空白の場合はデフォルトを使用し、それ以外の場合は渡したものを使用しますか? 少し汚れていますが、かろうじてです。

于 2010-07-15T18:44:16.100 に答える