КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
События объекта Connection
Управление соединением. Объект Connection Большинство источников данных поддерживает ограниченное количество соединений. Так, например, база данных MS Access может поддерживать одновременную работу не более чем с 255 пользователями. При попытке обращения к базе данных, лимит соединений которой исчерпан, пользователь не получит нужной ему информации и будет вынужден ждать освобождения соединения. Задача разработчика заключается в минимизации времени связи с базой данных, поскольку соединение занимает полезные системные ресурсы. Когда вызывается метод объекта DataAdapter (например, метод Fill), то он сам проверяет, открыто ли соединение. Если соединения нет, то DataAdapter открывает соединение, выполняет задачи и затем закрывает соединение. Явное управление соединением обладает рядом преимуществ: - дает более чистый и удобный для чтения код; - помогает при отладке приложения; - является более эффективным. Для явного управления соединением используется объект Connection. Для того чтобы разобраться с возможностями этого объекта, создадим новый проект и, перетащив элемент управления DataGridView, установим свойству Dock значение Fill. Перейдем в код формы и подключим пространство имен: using System.Data.OleDb; В конструкторе Forml после InitializeComponent создим объект Connection: OleDbConnection conn = new OleDbConnection(ConnectionString); В качестве параметра объекту conn передается строка подключения ConnectionString. Можно также устанавливать строку подключения через свойство созданного объекта conn: OleDbConnection conn = new OleDbConnection(); В качестве строки соединения можно использовать одну из строк из примеров для приложения, разработанного выше (см. п. 3.4). Например, string ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; " + Теперь можно устанавливать соединение, вызывая метод Open объекта Connection: OleDbConnection conn = new OleDbConnection();
Класс 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. Изменения состояния соединения с базой данных Конечно, в таком предельно простом приложении статус соединения очевиден. Но сама идея может применяться в любых, сколь угодно сложных приложениях, когда необходимо определять статус одного из нескольких подключений.
Дата добавления: 2015-05-09; Просмотров: 665; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |