КАТЕГОРИИ: Архитектура-(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) |
Объекты DBConnection и DBCommand
DataAdapter Объекты DataRelation Объект DataSet имеет также свойство Relations, возвращающее коллекцию DataRelationCollection, которая в свою очередь состоит из объектов DataRelation. Каждый объект DataRelation выражает отношение между двумя таблицами (сами таблицы связаны по какому-либо полю (столбцу)). Следовательно, эта связь осуществляется через объект DataColumn. Строки (объект DataRow) Коллекция Rows объекта DataTable возвращает набор строк (записей) заданной таблицы. Эта коллекция используется для изучения результатов запроса к базе данных. Мы можем обращаться к записям таблицы как к элементам простого массива. DataSet - это специализированный объект, содержащий образ базы данных. Для осуществления взаимодействия между DataSet и собственно источником данных используется объект типа DataAdapter. Само название этого объекта - адаптер, преобразователь, - указывает на его природу. DataAdapter содержит метод Fill() для обновления данных из базы и заполнения DataSet. Объект DBConnection осуществляет связь с источником данных. Эта связь может быть одновременно использована несколькими командными объектами. Объект DBCommand позволяет послать базе данных команду (как правило, команду SQL или хранимую процедуру). Объекты DBConnection и DBCommand иногда создаются неявно в момент создания объекта DataSet, но их также можно создавать явным образом. Строка соединения ConnectionString определяет параметры, необходимые для установления соединения с источником данных. Строка соединений при использовании мастеров генерируется средой, но можно (и желательно - во избежание неточностей и ошибок) писать эту строчку вручную. Рассмотрим еще раз строки соединения, которые были созданы при подключении к базам данных BDTur_firm.mdb и BDTur_firmSQL.mdf.
// База данных BDTur_firm: Provider=Microsoft.Jet.OLEDB.4.0; Data Source="D:ВМИFor ADOBDTur_firm.mdb" // путь к БД // База данных NorthwindCS; Data Source=.SQLEXPRESS; AttachDbFilename="D:ВМИFor ADO BDTur_firmSQL.mdf"; Integrated Security=True; Connect Timeout=30; User Instance=True
Класс Connection поддерживает несколько событий, позволяющих отслеживать статус соединения и получать уведомляющие сообщения для экземпляра этого класса. Описание событий приводится в таблице 1.В этих строках через точку с запятой просто перечисляются параметры соединения.
Таблица 1. Основные значения этих параметров.
Таблица 2. События объекта Connection
При вызове метода Dispose объекта Connection происходит освобождение занимаемых ресурсов и «сборка мусора». При этом неявно вызывается метод Close. Создадим новое Windows-приложение, работающее с базой данных BDTur_firmSQL.mdf. На форме разместим объект dataGridView со свойством Dock=Top, кнопку btnFill с надписью «Заполнить» справа под ним, и две метки (объекты типа Label). Свойству AutoSize каждой метки назначим значение False, свойству Dock второй метки (label2) значение Top, а свойству Dock первой (label1) None, и поместим ее под второй меткой слева, увеличив ее размеры. Подключаем пространство имен для работы с базой в файле Form1.cs: using System.Data.SqlClient;
В классе формы создаем строки connectionString и commandText: string connectionString = @"Data Source=.SQLEXPRESS; AttachDbFilename=" + @"D:ВМИFor ADOBDTur_firmSQL.mdf" + "integrated Security=True; Connect Timeout=30"; string commandText = "SELECT * FROM Туристы"; Объекты ADO будем создавать в обработчике события Click кнопки «Заполнить»: private void btnFill_Click(object sender, System.EventArgs e) { SqlConnection conn = new SqlConnection(); conn.ConnectionString = connectionString; //Делегат EventHandler связывает метод-обработчик conn_Disposed //с событием Disposed объекта conn conn.Disposed+=new EventHandler(conn_Disposed); //Делегат StateChangeEventHandler связывает метод-обработчик conn_StateChange //с событием StateChange объекта conn conn.StateChange+= new StateChangeEventHandler(conn_StateChange); SqlDataAdapter dataAdapter = new SqlDataAdapter(commandText, conn); DataSet ds = new DataSet(); dataAdapter. Fill(ds); dataGridl.DataSource = ds.Tables[0].DefaultView; //Метод Dispose, включающий в себя метод Close, //разрывает соединение и освобождает ресурсы. conn.Dispose(); }
В методе conn_Disposed просто будем выводить текстовое сообщение в надпись label2: private void conn_Disposed(object sender, EventArgs e) { label2.Text+="Cобытие Dispose"; }
При необходимости в этом методе могут быть определены соответствующие события. В методе conn_StateChange будем получать информацию о текущем и исходном состояниях соединения: private void conn_StateChange(object sender, StateChangeEventArgs e) { label1.Text+=" Исходное состояние: "+e.OriginalState.ToString() + " Текущее состояние: "+ e.CurrentState.ToString(); }
Дата добавления: 2014-01-14; Просмотров: 556; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |