Студопедия

КАТЕГОРИИ:


Архитектура-(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. Основные значения этих параметров.

Параметр Описание
Provider (Поставщик) Свойство применяется для установки или возврата имени поставщика для соединения, используется только для объектов OleDbConnection
Connection Timeout или Connect Timeout (Время ожидания связи) Длительность времени ожидания связи с сервером перед завершением попытки и генерацией исключения в секундах. По умолчанию 15
Initial Catalog (Исходный каталог) Имя базы данных
Data Source (Источник данных) Имя используемого SQL-сервера, когда установлено соединение, или имя файла базы данных Microsoft Access
Password (Пароль) Пользовательский пароль для учетной записи SQL Server
User ID (Пользовательский ID) Пользовательское имя для учетной записи SQL Server
Workstation ID Имя рабочей станции или компьютера
Integrated Security или Trusted Connection (Интегрированная безопасность, или Доверительное соединение) Параметр, который определяет, является ли соединение защищенным. True, False и SSPI - возможные значения (SSPI - эквивалент True)
Persist Security Info (Удержание защитной информации) Когда установлено False, нуждающаяся в защите информация, такая как пароль, не возвращается как часть соединения, если связь установлена или когда-либо была установленной. Выставление этого свойства в True может быть рискованным в плане безопасности. По умолчанию False

 

Таблица 2. События объекта Connection

Событие Описание
Disposed Возникает при вызове метода Dispose экземпляра класса
InfoMessage Возникает при получении информационного сообщения от поставщика данных
StateChange Возникает при открытии или закрытии соединения. Поддерживается информация о текущем и исходном состояниях

 

При вызове метода 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();

}

<== предыдущая лекция | следующая лекция ==>
Лекция №11. Выполним вычитание двоичных нормализованных чисел 0.10101*210 и 0.11101*21 | Подключение к базе данных
Поделиться с друзьями:


Дата добавления: 2014-01-14; Просмотров: 556; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.016 сек.