17316

Візуальне програмування – робота з БД Компонентне програмування – робота з обєктами БД

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторна робота 3. Візуальне програмування – робота з БД Компонентне програмування – робота з об'єктами БД. 2 год Мета роботи: Зв'язування даних з елементами управління ListBox і TextBox У палітрі компонентів Toolbox відкрийте вкладку Data і перетягніть на форму компонент...

Украинкский

2013-06-30

215.38 KB

1 чел.

Лабораторна робота 3. Візуальне програмування – робота з БД Компонентне програмування – робота з об'єктами БД. (2 год)

Мета роботи:

Зв'язування даних з елементами управління ListBox і TextBox

  1.  У палітрі компонентів Toolbox відкрийте вкладку Data і перетягніть  на форму компонент sqlDataAdapter. Якщо в налаштуваннях проекту такого компонента не виявиться, то клацніть на вкладці Data палітри Toolbox правою кнопкою миші і підключіть цей компонент командою Choose Items
  2.  У вікні майстра налаштування постачальника клацніть по кнопці New Connection і виберіть потрібний файл БД
  3.  Тут в текстовому полі пропонується вказати SQL-запит, який постачальник даних повинен виконувати за замовчанням при заповненні набору даних DataSet.
  4.  Клацніть на кнопці Query Builder, в діалоговому вікні Add Table виберіть із списку таблицю і по клацанню на кнопці Add вкладки Tables (потім на Close) відзначте в інтерфейсі прапорці проти потрібних полів таблиці, аби майстер написав для них текст запиту
  5.  Клацніть на кнопці OK вікна Query Builder і текст запиту буде поміщений в поле майстра

  1.  Нам буде потрібно лише читання даних, тому інші можливості потрібно відключити клацанням на кнопці Advanced Options, скинувши непотрібні прапорці

Слідуйте за вказівками майстра.

  1.  Клацніть на кнопці Finish, щоб завершити створення і налаштування об'єктів постачальника даних (екземплярів sqlDataAdapter і sqlConnection) і зберегти параметри в налаштунках проекту
  2.  У панелі Solution Explorer відкрийте файл Form1.Designer.cs і переконайтеся, що майстер створив необхідний код з налаштуваннями постачальника, до складу якого входять екземпляри класів sqlCommand, sqlDataAdapter і sqlDbConnection

Описану процедуру можна в будь-якому місці перервати клацанням на кнопці Cancel майстра налаштувань і повернутися до неї у будь-який час. Для цього досить клацнути в нижній частині робочої області на екземплярі класу sqlDataAdapter правою кнопкою миші і виконати команду Configure Data Adapter (або виділити об'єкт постачальника і виконати ту ж команду через пункт Data головного меню)

Отже, у нас є об'єкт з'єднання з БД і об'єкт-посередник між базою і набором даних (кешем оперативної пам'яті), який повинен виконувати команди SQL і управляти потоками даних. Тепер потрібно створити сам набір даних як екземпляр класу DataSet.

  1.  Клацніть правою кнопкою миші на екземплярі sqlDataAdapter1 в нижній частині робочої області і виконайте команду Generate DataSet (те ж саме можна виконати через меню Data)

У вікні майстра Generate DataSet, що з'явилося, клацніть на кнопці OK

Буде створений об'єкт набору даних dataSet11, який завантажуватиме два стовпці таблиці Student згідно SQL-запиту, вказаного в налаштуваннях постачальника sqlDataAdapter1.

Для відображення набору даних об'єкту dataSet11 застосуємо список ListBox.

  1.  Помістіть на форму з вкладки Common Controls палітри компонентів екземпляр компоненту ListBox.
  2.  Налаштуйте список за допомогою вікна властивостей таким чином:

Клацніть властивість DataSource, виберіть папку Other Data Sources, з джерел даних проекту виберіть таблицю Student

Властивості DisplayMember  призначте поле  St_Name.

Параметризовані запити

Використання декількох постачальників і декілька наборів  даних

Додамо ще по одному екземпляру класів sqlDataAdapter і DataSet. Для них ми сформуємо SQL-команду, яка вибиратиме з джерела один запис таблиці, відповідний виділеному в списку ListBox конкретному студенту за його номером.  Значення полів цього запису будемо відображати в текстових полях форми.

Додавання і налаштування постачальника даних

  1.  Перейдіть в режим View Designer і помістіть на форму ще один компонент sqlDataAdapter з іменем sqlDataAdapter2,
  2.  У майстрі налаштувань адаптера Data Adapter Configuration Wizard перейдіть на вкладку Generate the SQL statements, клацніть на кнопці Advanced Options і скиньте всі прапорці вкладки Advanced Options, оскільки постачальник лише читатиме дані
  3.  Клацніть на кнопці Query Builder, у вікні, що з'явилося, виберіть потрібну таблицю і клацніть один раз на кнопці Add, а потім - Close
  4.  У списку, що з'явився відзначте прапорці проти кожного поля, з яких повинен читати дані адаптер даних
  5.  У поле Filter рядка Student_ID введіть =?, після чого в третій секції буде згенерована команда SELECT

Завершіть роботу майстра.

Тепер потрібно створити пов'язаний з постачальником об'єкт набору даних DataSet, який зберігатиме дані таблиці Customers. Цей набір даних має бути узгоджений по структурі з налаштуваннями постачальника, тому створимо його за допомогою майстра. У панелі Solution Explorer зверніть увагу, що доки на формі  присутній лише один вузол DataSet1.xsd, який був створений майстром на попередніх етапах виконання роботи і який описує клас набору даних, відповідний зберіганню значень лише двох полей таблиці Student. Зараз створимо ще один такий вузол.

  1.  Клацніть правою кнопкою миші на об'єкті sqlDataAdapter2, виконайте команду Generate DataSet контекстного меню (або в Data головного меню проекту) і налаштуйте однойменне вікно майстра

Зв'язування елементів форми з набором даних

Приєднаємо до об'єкту listBox і поле Student_ID, значення якого заповнюватимуться в колекцію Items списку. Ця колекція не буде видна користувачу, але значення її будь-якого елементу завжди можна отримати для виділеного рядка списку і надалі використовувати як параметр в команді другого постачальника.

  1.  Виділіть на формі об'єкт listBox і встановіть його властивість ValueMember в значення Student.Student_ID  через список, що розкривається

Згенеруйте обробник  listBox1_SelectedIndexChanged  подвійним клацанням на списку і додайте в нього код

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

       {

           // Очистить второй набор данных

           dataSet21.Clear();

           // Если выбран элемент списка, заполнить второй набор

           if (listBox1.SelectedIndex != -1)

           {

               sqlSelectCommand2.Parameters[0].Value = listBox1.SelectedValue;

               sqlDataAdapter2.Fill(dataSet21);

           }

       }

Зв'язування набору даних з текстовими полями

Розмістіть на формі заголовки полів і текстові поля, в які будуть виводитися дані з таблиці.

По черзі виділіть кожне текстове поле, в панелі Properties розкрійте його властивість (DataBindings).Text і приєднайте відповідне поле з другого набору даних

Виконайте збірку рішення і запустіть його на виконання. Результат роботи:


 

А также другие работы, которые могут Вас заинтересовать

8884. Класифікація банківських операцій і послуг 78.62 KB
  Класифікація банківських операцій і послуг 1. Основи класифікації банківських операцій і послуг 2. Пасивні банківські операції та їх характеристика 3. Активні банківські операції та їх характеристика 4. Характеристика банківських послуг 1. Основи кл...
8885. Класифікація банківських і операцій і послуг Тестові завдання 23.5 KB
  Класифікація банківських і операцій і послуг Тестові завдання 1. Виберіть класифікацію банківських операцій за функціональними ознаками: а) кредитні, засновницькі, емісійні б) розрахунково-касові, інвестиційні, комісійні в) депозитні, міжбанківськ...
8886. Організація грошового обігу в банках 144.72 KB
  Організація грошового обігу в банках 1. Характеристика платіжного обігу 2. Банківське обслуговування готівкового обігу 3. Безготівкові розрахунки: суть, значення, класифікація та принципи організації 4. Характеристика міжбанківських розрахунків 5. С...
8888. Банківське кредитування як основа діяльності банку Тестові завдання 26.75 KB
  Банківське кредитування як основа діяльності банку Тестові завдання 1. Які з наведених тверджень найбільш повно відображають суть кредиту: а) надання грошей чи товарів у борг б) тимчасове користування позичальником цінностями кредитора в) механізм...
8889. Інвестиційна діяльність банків Тестові завдання 22.54 KB
  Інвестиційна діяльність банків Тестові завдання 1. Найбільш повно відображає зміст терміна інвестиції їх визначення а) будь-яке вкладення коштів (засобів), яке не призводить ні до зростання капіталу, ні до отримання прибутку б) короткострокове вкл...
8890. Банківське кредитування як основа діяльності банку 99.64 KB
  Банківське кредитування як основа діяльності банку 1. Суть, призначення та функції кредиту. Класифікація банківських кредитів 2. Порядок видачі та погашення банківських кредитів юридичним особам 3. Банківське споживче кредитування. 4. Форми забезпеч...
8891. Інвестиційна діяльність банків 52.51 KB
  Інвестиційна діяльність банків 1. Суть, значення та класифікація банківських інвестицій 2. Інвестиційний портфель банку та його класифікація 3. Концепція формування інвестиційного портфеля банку 1. Суть, значення та класифікація банківських інвестиц...
8892. Банківське обслуговування зовнішньоекономічної діяльності 213.44 KB
  Банківське обслуговування зовнішньоекономічної діяльності 1. Суть, значення та загальна характеристика валютних операцій банку 2. Неторговельні операції банків в іноземній валюті 3. Характеристика основних форм міжнародних розрахунків 4. Порядок зді...