Может быть несколько способов добиться этого. Одним из простых способов было бы создать код, который мог бы динамически определять строку соединения на основе выбора пользователя из раскрывающегося списка и использовать предопределенные наборы ConnectionString, которые у вас есть в вашем файле конфигурации. Допустим, вы определили следующие ConnectionStrings,
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<connectionStrings>
<add name="Development" connectionString="data source=MyDataSource;Initial Catalog=DevDatabase;user id=sa;Pwd=devpassword;"/>
<add name="Test" connectionString="data source=MyDataSource;Initial Catalog=TestDatabase;user id=sa;Pwd=testpassword;"/>
</connectionStrings>
</configuration>
Теперь вы можете иметь следующий код цикла через ConnectionString и определить, какие из них следует использовать на основе выбора ниспадающего
string selectedEnvironemntName = "Development"; //set from dropdown selection
var predefinedConnections = ConfigurationManager.ConnectionStrings;
SqlConnectionStringBuilder connStringBuilder = null;
foreach(ConnectionStringSettings connString in predefinedConnections)
{
if (connString.Name == selectedEnvironemntName)
{
connStringBuilder = new SqlConnectionStringBuilder(connString.ConnectionString);
}
}
//the below two lines can be anywhere in your solution as long as you can pass the connStringBuilder to SqlConnection definition
SqlConnection connection = new SqlConnection();
connection.ConnectionString = connStringBuilder.ConnectionString;
Ofcourse, один зависимости здесь. Вы должны убедиться, что выпадающие значения загружены на основе имени ConnectionString из файла конфигурации. Наличие этой зависимости гарантирует, что добавление нового ConnectionString в ваш файл конфигурации автоматически приведет к появлению новой записи в вашем выпадающем меню в UI
SqlConncetionStringBuilder имеет свойство ConnectionString, которое можно изменить. Вы после этого? Или вы хотите обновить ConnectionString в файле конфигурации? – Martin
Я хочу, чтобы выбрать имя базы данных, обновленные значения в файле connectionString, а затем перекомпилировать решение с новыми значениями, я не знаю, является ли лучший способ выбрать несколько баз данных для проекта, это было только то, что мне пришло в голову – UserEsp
Да, я вызвал ConnectionString в свой конфигурационный файл, извините за то, что не был таким конкретным. – UserEsp