Попередня сторінка Зміст Наступна сторінка Електронні посібники ВНТУ
ЛАБОРАТОРНА РОБОТА № 8
СТВОРЕННЯ КЛІЄНТСЬКОЇ ЧАСТИНИ ДОДАТКУ ДЛЯ ПЕРЕГЛЯДУ, РЕДАГУВАННЯ ДАНИХ БД.
ВИКЛИК ПРОЦЕДУР З КЛІЄНТСЬКОЇ ЧАСТИНИ
Мета роботи: навчитися створювати клієнтську програму для роботи з БД із застосуванням вбудованих інструментів на Visual C # 2005.
8.1 Пояснення до виконання роботи
Для створення клієнтського додатка на Visual C # 2005 використовуємо приклад БД c назвою DB_Books, яка була створена в лабораторній роботі №6. При виконанні прикладів і завдань звертайте увагу на відповідність назв БД, таблиць та інших об'єктів проекту.
На Visual C # 2005:
- У проекті вибираємо меню Tools => Connect to DataBase.
- У вікні, яке відкрилося, в полі Data Source ставимо Microsoft SQL Server, в поле Server Name – SQLEXPRESS, далі в поле Select or enter DB name обираємо ім'я БД, до якої будемо підключатися, і натискаємо OK.
- Тепер, відкривши вікно Server explorer, можна побачити підключену БД. Натиснувши на неї, у вікні властивостей копіюємо Connection String, ще буде в нагоді.
- На форму додати 5 компонентів типу DataGridView (перейменувати компоненти на Purchases, Books, Authors, Deliveries, Publish).
- У вкладці Data виберемо Add New Data Source. У вікні, яке з’явилось, виберемо DataBase і натиснемо Next. Вибираємо нашу БД, тиснемо Next. У вікні, яке з’явилось, поставимо галочку на пункті Table (вибираємо всі створені таблиці). Тиснемо Finish.
- У кожній таблиці DataGridView змінимо властивість DataSource на відповідно назві цієї таблиці (рис.8.1):
- На основній формі (Form1) додати компонент. У редакторі меню зробити перший пункт «Робота з таблицями» і в підменю пункти: «Автори», «Книги», «Видавництва», «Постачальники», «Поставки».
- Створити п'ять форм, кожну з яких назвати: FormAuthors, FormPurchases, FormBooks, FormDeliveries, FormPublish.
- На основній формі в підпунктах меню в відповідних методах Click викликати відповідні форми за допомогою коду:
- На форми FormAuthors, FormPurchases, FormBooks, FormDeliveries, FormPublish додати по парі компонент типу DataGridView і Binding-Navigator. Налаштувати у DataGridView властивість DataSource для зв'язку з відповідним джерелом даних. Потім необхідно налаштувати у BindingNavigator властивість BindingSource для зв'язку зі створеною таблицею (значення має збігатися із значенням властивості елемента DataGridView).
- Перевірити роботу додатка.
- На форму FormBooks додати 3 компонента типу TextBox і 2 компонента ComboBox.
- У компонента DataGridView прибрати всі галочки з властивостей редагування і додавання.
- На форму FormBooks додати компонент типу Button (кнопка оновлення даних), властивість Text змінити на «Оновити» та прописати подію Click:
- Аналогічно для інших форм додати елементи типу TextBox
- Перевірити роботу додатка.
- На форму FormBooks додати 5 компонентів типу Button.
- Аналогічно для інших форм додати елементи типу Button, які будуть запускати фільтри по відповідним значенням полів поточного запису в об'єкті Grid.
- Перевірити роботу додатка.
- Створити форму під назвою FormProcedure.
- Додати на головній формі в меню пункт з назвою Робота з процедурами. У методі Click пункту меню написати код для запуску форми FormProcedure (див. приклад коду в пункті 9 даної лабораторної роботи).
- Зайти Tool -> Choose Toolbox Items. Поставити галочки на елементах SqlCommand і SqlConnection, застосувати зміни.
- Додати на форму компонент SqlConnection і у властивості ConnectionString вибрати DB_DOOK.mdf
- Тепер можна підключити збережену процедуру Count_purchases, яку слід виконати таким чином:
- У компонента SqlCommand1 вибрати властивість Parameters і у властивостях кожного вхідного параметра виправити властивість SqlDbType – на DateTime, а для вихідного параметра властивість Value – Int. Також, якщо параметр зі значенням ReturnValue (параметр Direction) не створений, то необхідно створити його (він повинен зверху) і задати йому ім'я @ReturnValue з властивістю SqlDbType - Int.
- На форму FormProcedure додати 3 компонента типу TextBox (Імена відповідно TextBox1, TextBox2, TextBox3) і 1 компонент типу Button. Поруч з кожним компонентом TextBox поставити Label і виправити їх властивості Text відповідно на «Кількість покупок за вказаний період»,«Введіть дату початку періоду»,«Введіть дату кінця періоду».
- На кнопці змінити назву на «Виконати запит». У методі Click кнопки написати наступний код:
- Перевірити роботу додатка.
для FormAuthors:
FormAuthors myForm2 = new FormAuthors();
myForm2.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();
У 1-го компонента TextBox змінити властивості:
(DataBinding)
Text booksBindingSource - Code_book
У 2-го компонента TextBox змінити властивості: (DataBinding)
Text booksBindingSource - Title_book
У 1-го компонента ComboBox змінити властивості: (DataBinding)
SelectedValue booksBindingSource - Code_author
DataSource authorsBindingSource
DisplayMember name_author
ValueMember Code_author
У 3-го компонента TextBox змінити властивості: (DataBinding)
Text booksBindingSource - Pages
У 2-го компонента ComboBox змінити властивості: (DataBinding)
SelectedValue booksBindingSource - Code_publish
DataSource publishinghouseBindingSource
DisplayMember Publish
ValueMember Code_publish
this.Validate();
this.booksBindingSource.EndEdit();
this.booksTableAdapter.Update(this.dB_BOOKSDataSet.Books);
У 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 = "";.
Приклад створення процедури з вхідним і вихідним параметрами.
Створити процедуру для визначення кількості замовлень, зроблених за вказаний період:
CREATE PROC count_purchases
@ D1 SMALLDATETIME, @ d2 SMALLDATETIME,
@c INT OUTPUT
AS
SELECT @ c = count (Code_purchase) from Purchases WHERE Date_order
BETWEEN @ d1 AND @ d2
SET @c = ISNULL (@ c, 0)
Завдання. Створіть дану процедуру в розділі Stored Procedures БД DB_Books через утиліту SQL server Management Studio.
Запустити її за допомогою команд:
DECLARE @ c2 INT
EXEC count_purchases '01 -jun-2006 ', '01 -jul-2006', @ c2 OUTPUT
SELECT @ c2
На форму FormProcedure додати компонент SqlCommand. Змінити такі його властивості:
Connection на SqlConnection1;
CommandType на StoredProcedure;
CommantText на Count_purchases.
int count_save;
sqlCommand1.Parameters["@d1"].Value =
Convert.ToDateTime(textBox1.Text);
sqlCommand1.Parameters["@d2"].Value =
Convert.ToDateTime(textBox2.Text);
sqlConnection1.Open();
sqlCommand1.ExecuteNonQuery();
sqlConnection1.Close();
count_save = (int)sqlCommand1.Parameters["@ReturnValue"].Value;
textBox3.Text = Convert.ToString(count_save);
8.2 Завдання до лабораторної роботи
На Visual C # 2005 створити новий проект, далі для індивідуальної БД, створеної в лабораторній роботі №6, створити інтерфейс, що включає всі функції і процедури, які описані в даній лабораторній роботі.
8.3 Контрольні запитання
Запитання при перевірці виконаного завдання, що стосуються використаних функцій і процедур, їх призначення та використання.