8

アプリケーションを「1セットのコードと1つのデータベース」から「1セットのコードから複数のデータベース(顧客ごとに1つのデータベース)」に変更します。

元のコードは、VS2005 ASP.NET(VB)と別のDLL内の多くのXSDです。web.configのConnectionStringは、実行時にDLLに格納されているものをオーバーライドします。

ここで、データアダプター/データセット/テーブルを宣言するたびにConnectionStringを変更する必要があります。これは、呼び出しが前回の呼び出しとは異なるデータベースに送信される可能性があるためです。

誰かがこれについて何かヒントを得ましたか?

4

2 に答える 2

6

少し調べたところ、XSD には ConnectionModifier というプロパティがあるようです。

これを見つけるには、XSD ダイアグラムで、ダイアグラムの TableAdapter 部分 (クエリが定義されている場所) をクリックします。

プロパティ ウィンドウで、ConnectionModifier を Public に変更し、[保存] をクリックします。(これにより、そのページのすべてのデータセットのプロパティも変更されるようです。)

サイトのメイン コードに戻ると、次のようなことができます。

'declare the adapter as normal
Dim AdapterTest As New DataSetTestTableAdapters.TestTableAdapter

'pass the new connection object into the now visible property
AdapterTest.Connection = New Data.SqlClient.SqlConnection("Data Source=Myserver;Initial Catalog=TEST;Integrated Security=True;")

接続オブジェクトのみを取ります。

私はまだこれを適切にテストしていません!残念ながら、XSD から何かを宣言するたびに、新しい接続オブジェクトを渡す必要があります。

于 2009-01-12T17:01:41.007 に答える
1

また、前述のプロパティ (ConnectionModifier) は Public ですが、これが QueriesTableAdapter の場合、コードからはまだ確認できないことがわかりました。したがって、これらを削除して通常の「Using Query」ブロックに置き換えるのにかなりの時間を費やさなければなりませんでした。

また、プロジェクトは今より速く見えると確信しています。それは、サイズの縮小か、現在のすべての呼び出しで「Using」を使用している可能性があります (元のコードは .NET 時代の初期のものであったため、そもそもより適切に記述されていた可能性があります)。

于 2009-01-27T14:21:48.680 に答える