在运行时将ADO.Net DataSet指向不同的数据库?

问题描述:

我有一个大的ADO.Net数据集和两个数据库模式(Oracle)具有不同的约束。数据集可以使用任一模式,但我希望能够在运行时告诉数据集使用哪个模式(通过连接字符串)。在运行时将ADO.Net DataSet指向不同的数据库?

这可能吗?

在.Net 2.0世界中,您可以在运行时更改您的表适配器上的连接字符串。你只需要确定Connnection属性是公开的,可以从数据集设计器中设置。

数据集不知道它们指向哪个数据库 - 它们只是数据的容器。如果数据集中填充了数据适配器,那么正如@Austin Salonen指出的那样,您可以在适配器端进行更改。

这是关于如何在运行时更新连接字符串的代码片段。生成数据集的内容并不重要。

  DataSet ds = new DataSet(); 

      // Do some updateing here 

      // Put your connection string here dyanmiclly 
      System.Data.OleDb.OleDbCommand command = new System.Data.OleDb.OleDbCommand("Your Runtime Connection String"); 

      // Create the data Adapter 
      System.Data.OleDb.OleDbDataAdapter dataAdapter = new System.Data.OleDb.OleDbDataAdapter(command); 

      // Update the dataset 
      dataAdapter.Update(ds);