4.1.3. События объекта ConnectionКласс Connection поддерживает несколько событий, позволяющих отслеживать статус соединения и получать уведомляющие сообщения для экземпляра этого класса. Описание событий приводится в таблице 9. Таблица 9. События объекта Connection
При вызове метода Dispose объекта Connection происходит освобождение занимаемых ресурсов и «сборка мусора». При этом неявно вызывается метод Close. Создадим новое Windows-приложение, работающее с базой данных BDTur_firmSQL.mdf. На форме разместим объект dataGridView со свойством Dock=Top, кнопку btnFill с надписью «Заполнить» справа под ним, и две метки (объекты типа Label). Свойству AutoSize каждой метки назначим значение False, свойству Dock второй метки (label2) значение Top, а свойству Dock первой (label1) None, и поместим ее под второй меткой слева, увеличив ее размеры (рис. 61). Подключаем пространство имен для работы с базой в файле Form1.cs: using System.Data.SqlClient; В классе формы создаем строки connectionString и commandText: string connectionString = @"Data Source=.\SQLEXPRESS; AttachDbFilename=" + Объекты ADO будем создавать в обработчике события Click кнопки «Заполнить»: private void btnFill_Click(object sender, System.EventArgs e) { Для создания методов-обработчиков дважды нажимаем клавишу TAB при вводе соответствующей строки как на рис. 60. В методе conn_Disposed просто будем выводить текстовое сообщение в надпись label2: private void conn_Disposed(object sender, EventArgs e) { При необходимости в этом методе могут быть определены соответствующие события. В методе conn_StateChange будем получать информацию о текущем и исходном состояниях соединения: private void conn_StateChange(object sender, StateChangeEventArgs e) { Запускаем приложение. До открытия соединения состояние объекта conn было закрытым (Closed). В момент открытия текущим состоянием становится Open, а предыдущим - Closed. Этому соответствуют первые две строки, выведенные в надпись (рис. 61). После закрытия соединения (вызова метода Dispose) текущим состоянием становится закрытое (Closed), а предыдущим - открытое (Open). Этому соответствуют последние две строки, выводимые в надпись. Рис. 60. Автоматическое создание методов-обработчиков при помощи Intelligence Рис. 61. Изменения состояния соединения с базой данных Конечно, в таком предельно простом приложении статус соединения очевиден. Но сама идея может применяться в любых, сколь угодно сложных приложениях, когда необходимо определять статус одного из нескольких подключений.
|