我正在将我们的应用程序从"一组代码和一个数据库"更改为"一组代码到多个数据库(每个客户一个数据库)".
原始代码是VS2005 ASP.NET(VB)和许多XSD在一个单独的DLL中.web.config的ConnectionString将在运行时覆盖存储在DLL中的ConnectionString.
现在我需要在每次声明数据适配器/数据集/表时更改ConnectionString,因为调用可能会从上次调用转到另一个数据库.
有人对此有任何暗示吗?
经过一些研究,似乎XSD有一个名为ConnectionModifier的属性.
要找到它,请在XSD图上单击图的TableAdapter部分(定义查询的位置).
在属性窗口中,将ConnectionModifier更改为Public,然后单击Save.(这似乎也改变了该页面上所有数据集的属性.)
回到您网站的主要代码,您现在可以执行以下操作:
'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声明内容时都必须传递一个新的连接对象.