Frage

Ich ändere unsere Anwendung von „ein Codesatz und eine Datenbank“ zu „ein Codesatz für mehrere Datenbanken (eine Datenbank pro Kunde)“.

Der Originalcode ist VS2005 ASP.NET(VB) und viele XSDs in einer separaten DLL.Der ConnectionString der web.config würde den in der DLL zur Laufzeit gespeicherten überschreiben.

Jetzt muss ich den ConnectionString jedes Mal ändern, wenn ich einen Datenadapter/Datensatz/Tabelle deklariere, da der Aufruf möglicherweise an eine andere Datenbank als beim letzten Aufruf geht.

Hat jemand Hinweise dazu?

War es hilfreich?

Lösung

Nach einem wenig Forschung, scheint es, dass eine XSD eine Eigenschaft namens ConnectionModifier.

Um es zu finden, auf dem XSD Diagramm finden Sie im Table Teil des Diagramms (wo die Abfragen definiert sind).

Im Eigenschaftenfenster ändern ConnectionModifier zu öffentlichen und klicken Sie auf Speichern. (Dies scheint auch die Eigenschaft für alle Datensätze auf dieser Seite zu ändern.)

Zurück im Haupt Code Ihrer Website können Sie jetzt etwas tun:

'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;")

Es dauert nur ein Verbindungsobjekt.

Ich habe noch diese eine richtige Test macht! Unfortunatley, ein neues Verbindungsobjekt muss jedes Mal übergeben werden Sie etwas von einem XSD erklären.

Andere Tipps

Außerdem wurde festgestellt, dass die erwähnte Eigenschaft (ConnectionModifier) ​​zwar öffentlich ist, diese jedoch immer noch nicht über den Code angezeigt werden kann, wenn es sich um einen QueriesTableAdapter handelt.Daher musste ich eine ganze Weile damit verbringen, diese zu entfernen und durch einen normalen „Using Query“-Block zu ersetzen.

Außerdem bin ich mir sicher, dass das Projekt jetzt schneller zu sein scheint.Es könnte an der Größenreduzierung liegen oder an der Verwendung von „Using“ bei allen Aufrufen jetzt (der ursprüngliche Code stammt aus der Anfangszeit unserer .NET-Zeit und hätte daher von vornherein besser geschrieben werden können).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top