В моем C# WinForm у меня есть окно настроек, которое позволяет пользователю изменять настройки подключения к базе данных. Во время разработки я установил начальные настройки, которые будут успешно подключаться к базе данных.
Я получаю доступ к этим настройкам одним из двух способов:
Либо в обозревателе решений:
Или в настройках приложения Проекта:
Однако я заметил, что если я изменю любое из значений в файле Settings.Settings, форма по-прежнему загружается со значениями, для которых я изначально установил каждое.
Для ясности: одним из параметров является сервер, который является IP-адресом. адрес. Я изначально установил его на 256.256.256.256 (фиктивный IP, конечно). Программа работала нормально и соединилась с базой данных.
Затем я изменил IP-адрес в файле Settings.Settings на 255.255.255.2, который не будет подключаться. Но когда я запускаю форму, она все еще подключается с использованием первоначально установленного IP-адреса.
В моем событии загрузки формы у меня есть это:
db connectionTest = new db();
if (!connectionTest.TestDbConnectionSettings())
{
DialogResult diagResult = MessageBox.Show("Unable to connect to the database using the entered settings." +
"\n" +
"\n" +
"Click OK to open the Connection Settings window.", "Database Connection Test Failed", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
if(diagResult == DialogResult.OK)
{
frmDbConnectionInfo frm = new frmDbConnectionInfo();
frm.Show();
}
}
А вот метод TestDbConnectionSettings в моем Db.cs класс:
private readonly string connString = string.Format("Server = {0}; Port = {1}; User Id = {2}; Password = {3}; Database = {4};",
Properties.Settings.Default.serverSetting,
Properties.Settings.Default.portSetting,
Properties.Settings.Default.userIdSetting,
Properties.Settings.Default.passwordSetting,
Properties.Settings.Default.databaseSetting);
public bool TestDbConnectionSettings()
{
try
{
Cursor.Current = Cursors.WaitCursor;
using (NpgsqlConnection conn = new NpgsqlConnection(connString))
{
conn.Open();
Cursor.Current = Cursors.Default;
return true;
}
}
catch
{
Cursor.Current = Cursors.Default;
return false;
}
}
Итак, должен читать из файла настроек (по крайней мере, это мое намерение), но, похоже, что - больше, по крайней мере. По догадке я поместил код в Db.cs, который устанавливает значения для connString
в сам метод TestDbConnectionSettings, но это ничего не изменило.