Ponto ADO.Net DataSet para diferentes bancos de dados em tempo de execução?
-
02-07-2019 - |
Pergunta
Eu tenho um grande ADO.Net DataSet e dois esquemas de banco de dados (Oracle) com diferentes restrições. O conjunto de dados irá trabalhar com qualquer esquema, mas eu quero ser capaz de dizer o conjunto de dados que esquema para uso (via string de conexão) em tempo de execução.
Isso é mesmo possível?
Solução
Em 2,0 mundo da Net, você pode alterar sua seqüência de conexão em seus adaptadores de mesa em tempo de execução. Você apenas tem que ter certeza que a propriedade Connnection é pública, que pode ser definida a partir do designer de conjunto de dados.
Outras dicas
Os conjuntos de dados não sei o banco de dados que está apontando para - eles são recipientes apenas para dados. Se o conjunto de dados é preenchido com um adaptador de dados, então, como @Austin Salonen apontou, você mudar isso no lado do adaptador.
Este é um trecho de código de como você poderia atualizadas a seqüência de conexão em tempo de execução. Não importa o que gerou o conjunto de dados.
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);