Для задания строки соединения создадим метод GetDatabaseConnection, который возвращает экземпляр класса SqlConnection.
private SqlConnection GetDatabaseConnection(string name){ SqlConnection conn = null; ConnectionStringSettings setting = ConfigurationManager.ConnectionStrings[name]; if (setting!= null) try { conn = new SqlConnection(setting.ConnectionString);/// Проверка соединения с сервером базы данных conn.Open(); conn.Close(); } catch (SqlException ex) { MessageBox.Show("Прерывание при соединении с базой данных:\n\n Проверьте строку соединения в конфигурационном файле", "Предупреждение!", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); conn = null; } else { MessageBox.Show("Отсутствует соединение с базой данных\n\n Проверьте имя строки соединения в конфигурационном файле", "Предупреждение!", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); } return conn;}В данном коде используются классы ConnectionStringSettings и ConfigurationManager из пространства имен System.Configuration. Данное пространство имен необходимо подключить к проекту. Для этого в главном меню выберите пункт Project / Add Reference (рисунок 14.1) или в окне Solution Explorer щелкните правой кнопкой мыши на пункте Reference (рисунок 14.2).
|
|
Рис. 14.1. Выбор режима добавления ссылки на новое пространство имен из главного меню
Рис. 14.2. Выбор режима добавления ссылки на новое пространство имен из контекстного меню
В окне Add Reference выберите пространство имен System.Configuration и, нажав кнопку OK, добавьте ссылку в проекте на него (рисунок 14.3).
Рис. 14.3. Окно Add Reference добавления ссылок в проект
Кроме того, необходимо в файле FormEmployee.cs добавить спецификацию пространства имен System.Configuration (рисунок 14.4).
Рис. 14.4. Спецификация пространства имен System.Configuration в файле FormEmployee.cs
В методе GetDatabaseConnection вначале объявляется экземпляр conn класса SqlConnection. Далее читается раздел именованной строки соединения (с этой целью используется класс ConnectionStringSettings) из конфигурационного файла. Экземпляру setting присваивается значение строки соединения с помощью свойства ConnectionStrings статического класса ConfigurationManager.
Для корректной работы приложения необходимо проверить правильность полученной информации из конфигурационного файла. При проверке сначала анализируется сформирована ли какая-нибудь строка соединения if (setting!= null), а затем - корректность сформированной строки
try{ conn = new SqlConnection(setting.ConnectionString); conn.Open(); conn.Close();}catch (SqlException ex){ MessageBox.Show("Прерывание при соединении с базой данных:\n\n Проверьте строку соединения в конфигурационном файле", "Предупреждение!", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); conn = null;}После добавления в код класса FormEmployee метода GetDatabaseConnection необходимо провести модификацию приложения. Во-первых, в коде класса FormEmployee необходимо объявить экземпляр conn класса SqlConnection. Во-вторых, требуется модификация конструктора класса.
|
|
В приведенном коде добавленные строки выделены. Модификация конструктора класса FormEmployee приводит к тому, что экземпляр соединения с базой данных conn задается с помощью метода GetDatabaseConnection. Затем полученное соединение передается свойству Connection адаптеров daEmployee и daJobTitle. Если экземпляр соединения с базой данных conn не сформирован, то работа приложения завершается.
При выполнении приложения, если не найдена в конфигурационном файле именованная строка соединения, то выдается предупреждение, приведенное на рисунке 14.5, а в случае неправильной строки соединения выдается предупреждение, приведенное на рисунке 14.6.
Рис. 14.5. Предупреждение об отсутствии именованная строка соединения
Рис. 14.6. Предупреждение об ошибке в строке соединения