Направить ADO.Net DataSet на разные базы данных во время выполнения?
-
02-07-2019 - |
Вопрос
У меня есть большой набор данных ADO.Net и две схемы базы данных (Oracle) с разными ограничениями.Набор данных будет работать с любой схемой, но я хочу иметь возможность указать набору данных, какую схему использовать (через строку подключения) во время выполнения.
Возможно ли это вообще?
Решение
В мире .Net 2.0 вы можете изменить строку подключения в адаптерах таблиц во время выполнения.Вам просто нужно убедиться, что свойство Connection является общедоступным, и его можно установить в дизайнере набора данных.
Другие советы
Наборы данных не знают, на какую базу данных они указывают — они всего лишь контейнеры для данных.Если набор данных заполнен адаптером данных, то, как отметил @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);