2013-02-11 67 views
0

我有许多具有相同结构的数据库,并且我设计了一个与数据库设计相匹配的数据集。使用在设计时询问并在app.config中定义的connectionStrings很容易连接到数据库。但是当试图在运行时更改数据库时会出现问题。我无法找到任何非反射解决方案来处理它。有没有其他方法可以在运行时动态更改数据集的连接字符串,或者至少使用不同的连接字符串创建数据集!使用.net数据集连接到不同的数据库

回答

0

您正在使用TableAdapter填充DataSet,你可以很容易地修改TableAdapter连接字符串是这样的:

myTableAdapter.Connection.ConnectionString = connectionString; 

希望这有助于:)

0

gzaxx答案是行不通的,只是因为用不同的不同的DBMS工作ADO.NET提供程序,它们可能相互兼容,也可能不相容。背后有很多理论,我不会在这个文本框中输入所有内容,但是您需要了解这是主要问题的TableAdapters,而不是DataTable。您的业​​务和UI层通常只与DataTables交谈,因为在创建表列时正确使用了相应的数据类型,因此几乎所有DBMS都具有相同的结构。因此,理论上,如果Typed DataSets可以为每个DataTable附加多个适配器,您可以为每个支持的DBMS添加一个适配器,同时保持DataTable结构相同。

我自己不得不在一个有点大的项目中处理这个问题,对我来说唯一可行的解​​决方案是将我的数据访问分离为一个单独的项目(一个类库),然后为每个DBMS创建一个这样的DLL支持。希望能帮助你开始这一点。