使用.net数据集连接到不同的数据库

时间:2013-02-11 10:58:07

标签: c# dataset

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

2 个答案:

答案 0 :(得分:0)

您正在使用DataSet填充TableAdapter,您可以轻松修改TableAdapter连接字符串,如下所示:

myTableAdapter.Connection.ConnectionString = connectionString;

希望这会有所帮助:)

答案 1 :(得分:0)

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

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