====== Лабораторная работа №5 ====== NO:user READ:@ALL EDIT:@ALL ====== СОЗДАНИЕ КЛИЕНТСКОЙ ЧАСТИ ПРИЛОЖЕНИЯ ДЛЯ ПРОСМОТРА, РЕДАКТИРОВАНИЯ ДАННЫХ БД. ВЫЗОВ ХРАНИМЫХ ПРОЦЕДУР ИЗ КЛИЕНТСКОЙ ЧАСТИ ====== Цель работы – научиться создавать клиентское приложение для работы с базой данных с применением встроенных инструментов на Visual C# 2010. ===== Содержание работы: ===== - Выполнение всех заданий по ходу лабораторной работы. - Выполнение индивидуальных заданий. ===== Пояснения к выполнению работы ===== Для создания клиентского приложения на Visual C# 2010 используем пример базы данных c названием DB_Book, которая была создана в лабораторной работе №2. При выполнении примеров и заданий обращайте внимание на соответствие названий БД, таблиц и других объектов проекта. ==== 1. На Visual C# 2010 создаём приложение WindowsForms: ==== Файл -> Создать -> Проект -> Приложение WindowsForms (Рис.1) {{:users:perfilov:my_project:lab5_0.png|}} Рисунок 1. ==== 2. В проекте выбираем меню 'Сервис ⇒ Подключиться к базе данных'(рис. 2). ==== {{:users:perfilov:my_project:lab5_0_0.png|}} Рисунок 2. ==== 3. В открывшемся окне введите имя сервера и базы данных, нажмите OK (рис. 3). ==== {{ :users:perfilov:my_project:lab5_6.png }} Рисунок 3. ==== 4. Слева в окне 'Обозреватель серверов' можно увидеть подключенную базу данных(рис. 4). ==== {{:users:perfilov:my_project:lab5_0_1.png|}} Рисунок 4 ==== 5. Создать 5 форм, переименовать их на FormPurchases, FormBooks, FormAuthors, FormDeliveries, FormPublish соответственно(Рис. 5,6,7). ==== {{ :users:perfilov:my_project:lab5_0_2.png }} Рисунок 5. {{ :users:perfilov:my_project:lab5_0_3.png }} Рисунок 6. {{ :users:perfilov:my_project:lab5_0_4.png }} Рисунок 7. ==== 6. На каждую форму добавить по компоненту типа DataGridView(рис. 8). ==== {{ :users:perfilov:my_project:lab5_0_5.png }} Рисунок 8. ==== 7. Выберем источник данных, для это во вкладке нажать 'Выберите источник данных ⇒ Добавить источник данных проекта ⇒ Базы данных ⇒ Набор данных ⇒ Далее' и выбрать необходимые таблицы(рис.9, 10, 11, 12). ==== {{ :users:perfilov:my_project:lab5_0_6.png }} Рисунок 9. {{ :users:perfilov:my_project:lab5_8.png }} Рисунок 10. {{ :users:perfilov:my_project:lab5_9.png }} Рисунок 11. {{ :users:perfilov:my_project:lab5_10.png }} Рисунок 12. ==== 8. На основной форме создать 4 компонента типа Button и в соответствующих методах Click вызвать соответствующие формы с помощью кода: ==== для FormAuthors: FormAuthors myForm3 = new FormAuthors(); myForm3.Show(); для FormPurchases: FormPurchases myForm3 = new FormPurchases(); myForm3.Show(); для FormBooks: FormBooks myForm4 = new FormBooks(); myForm4.Show(); для FormDeliveries: FormDeliveries myForm5 = new FormDeliveries(); myForm5.Show(); для FormPublish: FormPublish myForm6 = new FormPublish(); myForm6.Show(); {{ :users:perfilov:my_project:lab.png }} Рисунок 13. ==== 9. На форму добавить компонент типа BindingNavigator. ==== Настроить у BindingNavigator свойство BindingSource для связи с созданной таблицей(значение должно совпадать со значением свойства элемента DataGridView). Добавить компонент типа BindingNavigator на остальные формы (рис. 14). {{ :users:perfilov:my_project:lab1.png }} Рисунок 14. ==== 10. Проверить работу приложения. ==== ==== 11. На форму FormBooks добавить 3 компонента типа TextBox и 2 компонента типа ComboBox. ==== У 1-го компонента **TextBox** изменить свойства: **(DataBinding)** **Text** booksBindingSource - ID Книги У 2-го компонента **TextBox** изменить свойства: **(DataBinding)** **Text** booksBindingSource - Название У 1-го компонента **ComboBox** изменить свойства: **(DataBinding)** **SelectedValue** booksBindingSource – Code_author **DataSource** authorsBindingSource **DisplayMember** Автор **ValueMember** Code_author У 3-го компонента **TextBox** изменить свойства: **(DataBinding)** **Text** booksBindingSource - Количество страниц У 2-го компонента **ComboBox** изменить свойства: **(DataBinding)** **SelectedValue** booksBindingSource – Code_publish **DataSource** publishinghouseBindingSource **DisplayMember** Публикация **ValueMember** Code_publish (рис. 15) {{ :users:perfilov:my_project:lab5_12.png }} Рисунок 15. ==== 12. У компонента DataGridView убрать все галочки со свойств редактирования и добавления (рис. 16). ==== {{ :users:perfilov:my_project:lab5_13.png }} Рисунок 16. ==== 13. На форму FormBooks добавить компонент типа Button (кнопка обновления данных), свойство Text изменить на «Обновить» и прописать событие Click: ==== this.Validate(); this.booksBindingSource.EndEdit(); this.booksTableAdapter.Update(this.dB_BOOKSDataSet.Books); {{ :users:perfilov:my_project:lab5_2.png }} Рисунок 17. ==== 14. Аналогично для остальных форм добавить элементы типа TextBox. ==== ==== 15. Проверить работу приложения. ==== ==== 16. На форму FormBooks добавить 5 компонентов типа Button (рис. 18). ==== У 1-го компонента **Button** изменить свойства и метод:\\ **Text** Фильтр по текущему издательству;\\ В методе **Click** кнопки написать код: int bb = dataGridView1.CurrentCell.RowIndex; booksBindingSource.Filter = "Code_Publish = " + dataGridView1[4,bb].Value; У 2-го компонента **Button** изменить свойства и метод:\\ **Text** Фильтр по текущему названию книги.\\ В методе **Click** кнопки написать код: int bb = dataGridView1.CurrentCell.RowIndex; booksBindingSource.Filter = "Title_book = " + dataGridView1[1, bb].Value; У 3-го компонента **Button** изменить свойства и метод:\\ **Text** Фильтр по текущему автору.\\ В методе **Click** кнопки написать код: int bb = dataGridView1.CurrentCell.RowIndex; booksBindingSource.Filter = "Code_Author = " + dataGridView1[0, bb].Value; У 4-го компонента **Button** изменить свойства и метод:\\ **Text** Фильтр по количеству книг.\\ В методе **Click** кнопки написать код: int bb = dataGridView1.CurrentCell.RowIndex; booksBindingSource.Filter = "Pages = " + dataGridView1[3, bb].Value; У 5-го компонента **Button** изменить свойства и метод:\\ **Text** Снять фильтр.\\ В методе **Click** кнопки написать код: booksBindingSource.Filter = ""; {{ :users:perfilov:my_project:lab5_3.png }} Рисунок 18. ==== 17. Аналогично для остальных форм добавить элементы типа Button, которые будут запускать фильтры по соответствующим значениям полей текущей записи. ==== ==== 18. Проверить работу приложения. ==== Назад: [[users:perfilov:my_project:index]] {{tag>}}