У меня есть приложение VB.NET с подключением к SQL Server 2003. На сервере есть две базы данных, MyDatabase и MyDatabase_Test. Что я хотел бы сделать, так это показать диалоговое окно при запуске программы, которое позволит пользователю выбрать, какую базу данных использовать. Моя идея состоит в том, чтобы создать новую форму в качестве формы запуска, которая устанавливает это свойство, а затем запускает основную форму.
В настоящее время строка подключения указана в файле конфигурации приложения. Лучше всего было бы, если бы я мог указать две разные строки подключения в этом файле на выбор, но сейчас это также приемлемо для других решений, таких как жесткое кодирование двух строк подключения в форме запуска.
РЕДАКТИРОВАТЬ: В файле dataset.xsd, кажется, есть соответствующая часть
<Connections>
<Connection AppSettingsObjectName="MySettings" AppSettingsPropertyName="MyDatabase_ConnectionString" ConnectionStringObject="" IsAppSettingsProperty="true" Modifier="Assembly" Name="MyDatabase_ConnectionString(MySettings)" ParameterPrefix="@" PropertyReference="ApplicationSettings.MyProgram.My.MySettings.GlobalReference.Default.MyDatabase_ConnectionString" Provider="System.Data.SqlClient" />
</Connections>
Но как мне изменить это во время выполнения? Самое близкое, что я могу найти, - это изменить, какое соединение используется для каждого TableAdapter, но это не кажется оптимальным.
РЕДАКТИРОВАТЬ 2: Я согласен, что модальное диалоговое окно при запуске было бы лучше, но где бы я запустил его, чтобы это было сделано до инициализации подключения к базе данных?
EDIT3: В конце концов я «решил» это, удалив ReadOnly из файла настроек. Это будет удаляться каждый раз, когда файл автоматически генерируется, так что это не оптимально.
РЕДАКТИРОВАТЬ4: Лучшее решение, по-видимому, - использовать строку в пользовательской области вместо строки подключения для связывания набора данных и получения значения для этой строки из двух подключенных строк приложения в области приложения.