manishbg Ответов: 2

Динамическое изменение строки подключения в ASP.NET с#


я хочу изменить строку подключения после изменения выпадающего списка.

Что я уже пробовал:

у меня нет ни малейшего представления.Пожалуйста, помогите мне

Suvendu Shekhar Giri

Где вы хранили строку соединения ?
в интернете.конфиг?

manishbg

да, но изменение через c#

Member 14070320

пожалуйста, ответьте на ее вопрос!!!!

2 Ответов

Рейтинг:
0

Suvendu Shekhar Giri

Если вы хотите изменить строку подключения динамически, то web.config, вероятно, не является подходящим местом для хранения этого значения. Это потому,что это люди только для чтения.

1.Если список в выпадающем списке фиксирован, то вы можете хранить несколько строк подключения в одном файле web.config с разным именем/ключом и соответственно переключаться между ними.
2.Если вы хотите изменить строку подключения, то настройки подойдут больше.
Подробная справка по настройкам, проверьте ссылку на MSDN
Использование настроек в C#[^]

Попробуйте эти подходы, и если вы столкнетесь с какой-либо проблемой, пожалуйста, дайте мне знать.

Надеюсь, это поможет :)


Animesh Datta

Мои 5!

Suvendu Shekhar Giri

Спасибо :)

Рейтинг:
0

F-ES Sitecore

Вы не можете изменить строку подключения в конфигурации, вы либо должны иметь все возможные соединения в конфигурации и выбрать, какое из них использовать в вашем коде, либо создать соединение динамически

<connectionStrings>
  <add name="MyCon1" connectionString="server=.\SQL2008; database=DB1; Trusted_Connection=true;"/>
  <add name="MyCon2" connectionString="server=.\SQL2008; database=DB2; Trusted_Connection=true;"/>
  <add name="MyCon3" connectionString="server=.\SQL2008; database={0}; uid={1}; pwd={2};"/>
</connectionStrings>


SqlConnection con = null;

if (someCondition)
{
    // use MyCon1
    con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyCon1"].ConnectionString);
}
else
{
    // use MyCon2
    con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyCon2"].ConnectionString);
}
            
// or you can construct the string manually.  I'm going to assume you want to use
// data from your controls in the string, so if you have a variable for the database
string dbToUse = "mydb";
con = new SqlConnection(string.Format("server=.;database={0};", dbToUse));

// or you could put the tokens in the connection string itself and keep it in the web config
string username = "me";
string password = "mypassword";
            
con = new SqlConnection(string.Format(ConfigurationManager.ConnectionStrings["MyCon3"].ConnectionString, dbToUse, username, password));