Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
60
Добавлен:
10.05.2014
Размер:
120.83 Кб
Скачать

Связывание таблиц с оконными формами

Каждая выбранная из базы данных таблица должна быть связана со своим полем типа DataGrid, в котором будет отображаться содержимое таблицы.

Для связывания таблицы с полем необходимо выполнить следующие действия:

1. Перетащить на оконную форму объект DataGridView из панели ToolBox. На окне, вместе с объектом DataGridView, появится дополнительное поле Data Grid View Tasks, которое пока не используется. Его следует погасить, щелкнув мышью в любой позиции окна.

2. Из окна Data Sources следует выбрать требуемую таблицу и перетащить ее на поле DataGridView. При этом в проекте сразу создаются объекты DataSet, TableAdapter и BindingSource.

Для каждой таблицы создаются свои объекты типов TableAdapter и BindingSource. Объект TableAdapter используется для передачи данных между таблицей базы данных и соответствующим объектом типа Table на клиенте, а объект типа BindingSource – для связывания объекта типа Table на клиенте с соответствующей таблицей базы данных. Объект типа DataSet, объединяющий на стороне клиента все объекты типа Table, создается только один для всех таблиц.

В окне Data Sources дочерние таблицы представлены в двух местах. Прежде всего, все таблицы представлены в основном дереве объектов и помечены символом +. Если раскрыть символ "+", можно увидеть подчиненное дерево, содержащее колонки таблицы. Если раскрыть символ "+" у родительской таблицы, в подчиненном ей дереве колонок можно увидеть ссылку на дочернюю таблицу (также помеченную символом "+").

Если перетаскивать на поле DataGridView таблицы из основного дерева, получим независимое отображение содержимого таблиц. Если же на поле DataGridView перетащить дочернюю таблицу из подчиненного дерева колонок, отображение содержимого родительской и дочерней таблиц будет синхронизовано по значению атрибутов первичного и внешнего ключей. В этом случае при позиционировании курсора на некоторой строке родительской таблицы можно будет в дочерней таблице увидеть только те строки, у которых значение внешнего ключа совпадает со значением первичного ключа выбранной строки родительской таблицы.

Именование объектов

По умолчанию, если не указывается иное, имена объектов формируются по следующим правилам:

– имя объекта типа DataSet (имя набора данных) определяется как имя_БДDataSet;

- имя объекта типа TableAdapter (адаптера таблицы) определяется как имя_таблицыTableAdapter;

- имя объекта типа Table (таблицы в наборе данных) совпадает с именем таблицы в базе данных;

- имя объекта типа BindingSource определяется как имя_таблицыBindingSource.

Если такой способ именования объектов почему-либо не устраивает, имена этих объектов можно выбирать по своему желанию.

Обмен данными с базой данных

Передача данных из таблицы базы данных в объекты типа Table в DataSet осуществляется с помощью следующего метода:

имя_адаптера_таблицы.Fill(имя_набора_данных.имя_таблицы);

Передача данных из DataSet в таблицы базы данных осуществляется с помощью следующего метода:

имя_адаптера_таблицы.Update(имя_набора_данных.имя_таблицы);

Важно соблюдать порядок обновления родительской и дочерней таблиц.