Как получить список таблиц-адаптеров? - PullRequest
1 голос
/ 14 декабря 2009

ФОН: Большинство моих программ используют адаптеры таблиц, а строки подключения хранятся в настройках приложения. Это прекрасно работает, но это была настоящая PITA при переходе от разработки к производственной среде. Мне пришлось вручную изменить строки подключения до и после начала работы в любом приложении.

После небольшого исследования я обнаружил, как динамически переключать строки подключения для адаптеров таблиц. Просто добавив пользовательское свойство для connectionString, я смог добиться этого. Но мне все еще нужно добавить код в новое событие для каждого приложения, чтобы при загрузке строки подключения переключались. (Мои строки подключения хранятся в качестве параметра свойства приложения в общей библиотеке DLL. Я просто храню одну копию библиотеки DLL со строками подключения локально и одну копию библиотеки DLL со строками производственного соединения на рабочем сервере.)

НОВАЯ ПРОБЛЕМА

Я бы хотел сделать еще один шаг вперед, чтобы наборы данных изменили строки подключения для всех адаптеров таблиц, которые они содержат при загрузке с использованием нового события, или сделали то же самое из модуля VB. У меня может быть до 3 наборов данных одновременно.

Я очень полагаюсь на intellisense, чтобы помочь мне определить, какие методы и свойства доступны, но я не могу найти способ получить список адаптеров таблиц в моих наборах данных. Насколько я могу судить, они не являются частью какой-либо коллекции объектов. Я довольно долго искал решение, но не повезло.

Marshall

1 Ответ

1 голос
/ 16 декабря 2009

Возможно, вы захотите перенастроить расположение строк подключения. Сделайте, чтобы ваш уровень представления (то есть приложение) содержал строку подключения в его app.config. Теперь вот классная часть ... любой .DLL, который используется приложением, может получить доступ к app.config приложения, используя ConfigurationManager.ConnectionStrings ("MyConnectionString"). Функция ToString. Ваш .DLL будет вызывать строку подключения по имени, и этот вызов распространяется до приложения app.config. Если вы не хотите жестко кодировать «MyConnectionString», то вам просто нужно передать строку подключения в .DLL через свойство объекта.

Если вы не хотите переставлять строку подключения «владение», просто предоставьте строку подключения .DLL из своего собственного файла конфигурации через статический объект в .DLL, который может прочитать приложение. Присвойте это адаптерам таблиц.

В качестве примечания: если вы уже знакомы и знакомы с тем, что кажется вашими собственными DLL, переместите всю логику доступа к данным в свою собственную DLL как Уровень доступа к данным (DAL) - выньте логику доступа к данным слоя презентации!

...