Манипулирование строками соединений

Для задания строки соединения создадим метод 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. Во-вторых, требуется модификация конструктора класса.

public FormEmployee(){ InitializeComponent(); bmEmployee = this.BindingContext[dsEmployee, "Employee"]; bmEmployee.PositionChanged +=new EventHandler(BindingManagerBase_PositionChanged); conn = GetDatabaseConnection("Employee"); if (conn == null) { Application.Exit(); } else { daEmployee.Connection = conn; daJobTitle.Connection = conn; }}

В приведенном коде добавленные строки выделены. Модификация конструктора класса FormEmployee приводит к тому, что экземпляр соединения с базой данных conn задается с помощью метода GetDatabaseConnection. Затем полученное соединение передается свойству Connection адаптеров daEmployee и daJobTitle. Если экземпляр соединения с базой данных conn не сформирован, то работа приложения завершается.

При выполнении приложения, если не найдена в конфигурационном файле именованная строка соединения, то выдается предупреждение, приведенное на рисунке 14.5, а в случае неправильной строки соединения выдается предупреждение, приведенное на рисунке 14.6.

 

Рис. 14.5. Предупреждение об отсутствии именованная строка соединения

 

Рис. 14.6. Предупреждение об ошибке в строке соединения

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: