/ / Промяна на SQL Server Database Connection Динамично - c #, sql, sql-сървър, база данни, свързващ низ

Смяна на SQL Server база данни връзка Динамично - C #, SQL, SQL сървър, база данни, връзка низ

Имам клас на свързване, който използвам, за да се свързвам с моята база данни, всеки път, когато правя заявка за избиране, вмъкване и т.н. В класа имам твърдо кодиран свързващ низ.

Проблемът с това е, ако трябва да променя сървърите на бази данни, тогава трябва да променя низа на всяко приложение и да го публикувам отново.

Ето моята връзка низ:

var cnnString = string.Format("user id=sa;" +
"password=pw;server=database\instance;" +
"database=dbase; " +
"connection timeout=10");

Мислех за създаването на таблица и съхраняването на информацията за базата данни там, но това не помага, ако не може да използва класа на връзката, за да изберете от базата данни.

Има ли начин да се направи това динамично?

Отговори:

2 за отговор № 1

Поставете вашите връзки в .config файл и използвайте класа ConfigurationManager: https://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager%28v=vs.110%29.aspx

Заредете всички струнни връзки в масив / речник, след което трябва да създадете връзка, като използвате подходящия низ за свързване.


1 за отговор № 2

Можете да използвате файла Appconfig

<appSettings>
<add key="dbserver" value="IP_SERVER" />
<add key="dbname" value="DB_NAME" />
<add key="dbuser" value="sa" />
<add key="dbpass" value="PASSWORD" />
</appSettings>

след това използвайте това, за да създадете връзката низ

string strConexion = "Data Source="" + ConfigurationManager.AppSettings["dbserver"] + "";" +
"Initial Catalog="" + ConfigurationManager.AppSettings["dbname"] + "";" +
"User Id="" + ConfigurationManager.AppSettings["dbuser"] + "";" +
"Password="" + ConfigurationManager.AppSettings["dbpass"] + "";";

И можете да използвате формуляр, за да промените стойностите на конфигурацията, като използвате това

// Отваряне на App.Config на изпълнимия файл

    System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

config.AppSettings.Settings.Remove("dbserver");
config.AppSettings.Settings.Remove("dbname");
config.AppSettings.Settings.Remove("dbuser");
config.AppSettings.Settings.Remove("dbpass");

// Add an Application Setting.
config.AppSettings.Settings.Add("dbserver", txtDBServer.Text);
config.AppSettings.Settings.Add("dbname", txtDBName.Text);
config.AppSettings.Settings.Add("dbuser", txtDBUser.Text);
config.AppSettings.Settings.Add("dbpass", txtDBPassword.Text);

Запазете промените в файла App.config.

 config.Save(ConfigurationSaveMode.Modified);

Принуди презареждане на променена секция.

ConfigurationManager.RefreshSection("appSettings");