Реклама:

4. В появившемся на экране окне Edit Relation зададим значения полей так, как показано на рис. 1.25, и нажмем кнопку OK.

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. 1.25

5. Между таблицами будет установлено отношение "один-ко-многим". В схеме этот факт будет отображен при помощи своебразного соединения таблиц прерывистой линией с ромбиком посередине (рис. 1.26).

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. 1.26

6. Сохраним приложение и выйдем из схемы набора данных. Для этого в структуре проекта выберем узел формы Form1.cs и дважды щелкнем по нему мышью.

1.3.6. Добавление и настройка элементов управления DataGrid

1. Перейдем в окно Toolbox (иконка Л), на странице Windows Form выберем элемент управления DataGrid и перетащим его в форму. В форме будет создан объект с именем dataGrid3.

2. Перетащим в форму еще один элемент управления DataGrid. В форме будет создан объект с именем dataGrid2.

3. Изменим свойства объекта dataGrid! так, как показано ниже в таблице.

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис 1.27

5. Разместим в форме DataGrid2 под DataGridl.

1.3.7. Заливка записей в набор данных

1. Дважды щелкнем мышью по форме.

2. В появившемся редакторе программного кода зададим следующий обработчик события загрузки формы:

private void Form1_Load(object sender, System.EventArgs e) {

aKaf.Fill(ds1, "Kaf"); aPrep.Fill(ds1, "Prep");

1.3.8. Добавление экранных кнопок

1. Добавим в форму две экранные кнопки (объекты типа Button) для запоминания в базе данных VUZ.mdb изменений, внесенных в записи таблицы Kaf набора данных ndl, а также для отмены этих изменений. В окне Toolbox на закладке Windows Forms выберем элемент управления и перетащим его в форму. В окне свойств изменим имя кнопки с buttonl на btnUpdate (свойство Name), а текст кнопки - на Запомнить (свойство Text). Аналогичным образом добавим в форму вторую кнопку. Назовем ее btnReject, в качестве текста зададим Отменить. Форма приобретет вид, показанный на рис. 1.28.

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. 1.28

2. Дважды щелкнем мышью по экранной кнопке Запомнить и зададим следующий обработчик события нажатия кнопки:

private void btnUpdate_Click(object sender, System.EventArgs e) {

//---если в наборе данных что-то менялось

if (ds1.HasChanges())

{

//---получаем удаленные записи в дочерней таблице

//---и записываем в БД

DataTable dtDelChild =

dsl.Prep.GetChanges(DataRowState.Deleted); if (dtDelChild != null) {

aPrep.Update(dtDelChild); dtDelChild.Dispose();

}

//---записываем в БД изменения в родительской таблице

DataTable dtAnyChangeslnParent = ds1.Kaf.GetChanges();

if (dtAnyChangeslnParent != null)

{

aKaf.Update(dtAnyChangeslnParent); dtAnyChangesInParent.Dispose();

}

//---получаем добавленные записи в дочерней таблице

DataTable dtAddChild =

ds1.Prep.GetChanges(DataRowState.Added);

if (dtAddChild != null)

{

aPrep.Update(dtAddChild); dtAddChild.Dispose();

}

//---получаем измененные записи в дочерней таблице

DataTable dtEditChild =

dsl.Prep.GetChanges(DataRowState.Modified);

if (dtEditChild != null)

{

aPrep.Update(dtEditChild); dtEditChild.Dispose();

}

//---подтверждаем изменения

ds1.AcceptChanges();

}

}

3. Дважды щелкнем мышью по экранной кнопке Отменить и зададим следующий обработчик события нажатия кнопки:


⇐ Предыдущая страница| |Следующая страница ⇒