Puntare ADO.Net DataSet su database diversi in fase di esecuzione?
-
02-07-2019 - |
Domanda
Ho un grande set di dati ADO.Net e due schemi di database (Oracle) con vincoli diversi. Il set di dati funzionerà con entrambi gli schemi, ma voglio essere in grado di dire al set di dati quale schema utilizzare (tramite stringa di connessione) in fase di esecuzione.
È anche possibile?
Soluzione
Nel mondo .Net 2.0, è possibile modificare la stringa di connessione sugli adattatori di tabella in fase di esecuzione. Devi solo assicurarti che la proprietà Connnection sia pubblica, che può essere impostata dal designer del set di dati.
Altri suggerimenti
I set di dati non sanno a quale database puntano: sono solo contenitori per dati. Se il set di dati è riempito con un adattatore dati, come sottolineato da @Austin Salonen, lo si modifica sul lato adattatore.
Questo è uno snippet di codice su come è possibile aggiornare la stringa di connessione in fase di esecuzione. Non importa ciò che ha generato il set di dati.
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);