Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

private void EditButton_Click(object sender, EventArgs e)




private void EditButton_Click(object sender, EventArgs e)

{

//если выбрана строка в таблице

if (dataGridView1. SelectedRows. Count! = 0)

{

   //получить содержимое выбранной строки

   DataRow row = dataSet1. Contacts. Rows[RowId];

   //изменить фамилию и имя на введенные значения

   row[" Fam" ] = FamTextBox. Text;

   row[" Name" ] = NameTextBox. Text;

   //сохранить изменения и обновить содержимое формы

   UpdateContacts();

}

else

   MessageBox. Show(" Выберите строку для редактирования",

" Ошибка" );

}

 

Здесь проверяется, выбрана ли строка для редактирования. Если нет, то выдается сообщение об ошибке и обработчик завершает работу. Иначе надо получть содержимое выбранной строки в объект типа DataRow. Далее значения полей Fam и Name этой строки заменяются на новые, введенные пользователем в текстовых полях, и вызывается метод UpdateContacts() для сохранения изменений в БД и обновления таблиц на форме.

Т. к. таблицы БД связаны между собой, и при связывании было указано каскадное изменение и удаление записей, то после сохранения изменений в БД эти изменения отобразятся и в таблице Phones.

 

5. 2. 6 Изменение номера телефона

Для изменения номера телефона используется кнопка Изменить, расположенная справа от списка телефонов. Исходный текст обработчика событий для этой кнопки представлен ниже:

 

private void EditPhoneButton_Click(object sender, EventArgs e)

{

//если выбрана запись для редактирования

if (dataGridView2. SelectedRows. Count! = 0)

{

   try

   {

       //получить содержимое выбранной строки

       DataRow row = dataSet1. Phones. Rows[PhoneId];

       //изменить номер телефона на введенное значение

       row[" Phone" ] = PhoneTextBox. Text;

       //получить из выпадающего списка фамилию,

//для которой добавляется телефон

       string fio = FamComboBox. SelectedItem. ToString();

       //составить условие для поиска этого человека

//в таблице Contacts

       string str = " Fam='" + fio + " '";

       //получить id этого человека в таблице Contacts

       DataRow[] contacts = dataSet1. Contacts. Select(str);

       //заполнить столбец " ContactId" редактируемой записи

       row[" ContactId" ] = contacts[0][" id" ];

   }

   catch (Exception)

   {

   }

   //сохранить изменения и обновить содержимое формы

   UpdateContacts();

}

else

   MessageBox. Show(" Выберите строку для редактирования",

" Ошибка" );

}

 

Начало обработчика идентично предыдущему: если выбрана строка для редактирования, то получить ее содержимое и изменение значение номера телефона.

Далее, если нужно изменить и человека, к которому этот номер телефона относится, то используется технология, описанная в пункте 5. 2. 3: поиск человека в таблице Contacts с помощью метода Select(), получение его порядкового номера ( id ) и заполнение этим значением поля ContactId таблицы Phones.

 

5. 2. 7 Удаление записей таблицы Contacts

Для того чтобы удалить строку, выделенную пользователем в списке контактов, нужно воспользоваться кнопкой Удалить. Ниже приведен исходный текст метода, выполняющего обработку событий от этой кнопки:

 

private void DelContactButton_Click(object sender, EventArgs e)

{

//если выбрана запись для удаления

if (dataGridView1. SelectedRows. Count! = 0)

{

if (MessageBox. Show(" Вы действительно хотите удалить запись? ", " Подтверждение", MessageBoxButtons. YesNo) == DialogResult. Yes)

     {

         try

         {

             //удалить выбранную строку

             dataSet1. Contacts. Rows[RowId]. Delete();

         }

         catch (Exception)

         {

         }

         //обновить БД и ее содержимое на форме

         UpdateContacts();

     }

}

else

     MessageBox. Show(" Выберите строку для удаления", " Ошибка" );

}

 

После проверки, выбрана ли в таблице строка для удаления и вывода подтверждающего сообщения, непосредственное удаление записи выполняется методом Delete(), после чего изменения сохраняются в базу данных и отображаются на форме.

При связывании таблиц Contacts и Phones в списке Правило удаления было выбранозначение Cascade, задающее режим автоматического внесения изменений в дочернюю таблицу при удалении записей родительской таблицы. Поэтому при удалении строк роди­тельской таблицы происходит удаление соответствующих строк дочерней таблицы.

 

5. 2. 8 Удаление номера телефона

Для удаления номера телефона предназначена кнопка Удалить, расположенная возле списка телефонов. Далее приведен обработчик событий для этой кнопки:

 

private void DelPhoneButton_Click(object sender, EventArgs e)

{

//если выбрана запись для удаления

if (dataGridView2. SelectedRows. Count! = 0)

{

   if (MessageBox. Show(" Вы действительно хотите удалить

запись? ", " Подтверждение", MessageBoxButtons. YesNo) == DialogResult. Yes)

   {

       try

         {

           //удалить выбранную строку

           dataSet1. Phones. Rows[PhoneId]. Delete();

       }

       catch (Exception)

       {

       }

       //обновить БД и ее содержимое на форме

       UpdateContacts();

   }

}

else

   MessageBox. Show(" Выберите строку для удаления",

" Ошибка" );

}

Код обработчика идентичен предыдущему (естественно, работа идет с таблицей Phones и компонентом dataGridView2 ).

 

5. 2. 9 Фильтрация данных

В данном приложении приведен пример фильтра, который позволяет просматривать номера телефона одного, выбранного человека. Фамилия этого человека выбирается в выпадающем списке FamComboBox. Режим фильтрации включается флажком FilterCheckBox. Код обработки щелчка по этому флажку приведен ниже:

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...