问题
I have a large ADO.Net dataset and two database schemas (Oracle) with different constraints. The dataset will work with either schema, but I want to be able to tell the dataset which schema to use (via connection string) at runtime.
Is that even possible?
回答1:
In the .Net 2.0 world, you can change your connection string on your table adapters at run-time. You just have to be sure the Connnection property is public, which can be set from the dataset designer.
回答2:
Datasets don't know what database they're pointing to -- they're just containers for data. If the dataset is filled with a data adapter, then as @Austin Salonen pointed out, you change that on the adapter side.
回答3:
This is a code snippet on how you could updated the connection string at runtime. It does not matter what generated the dataset.
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);
来源:https://stackoverflow.com/questions/121350/point-ado-net-dataset-to-different-databases-at-runtime