Методические указания по выполнению лабораторных и практических работ по мдк
Скачать 3.25 Mb.
|
объекта Command. Практическая работа № 1.55. Разработка формы работы с магазинами с использованием объекта Command Цель работы: ознакомиться с основными свойствами и методами подключенных объектов ADO .Net (Connection, Command, Parameters) с основными конструкциями языка SQL для манипулирования данными. 17 Задание: В среде MS Visual Studio необходимо создать Windows-приложение, которое позволит добавлять данные в таблицу Магазины с использованием объекта Cоmmand, форма изображена на рисунке 12. Рисунок 12 – Форма для добавления данных в таблицу «Магазин» Ход работы: Указание: При выполнении данного задания используйте лекционный материал (Лекция - Работа с подключенными объектами ADO). 1. Добавьте в Ваш проект новую форму, поместите на форму попарно компоненты Label и TextBox для каждого поля таблицы «Магазины» (Название_магазина, адрес, и т.д. – см. свою базу данных в среде MS SQLServer Management Studio (Далее SSMS)). 2. Добавьте обработчик для открытия только что добавленной формы при выборе в главном меню проекта пункта СправочникиМагазины Добавить 3. Добавьте в код формы ссылку на пространства имен для работы с объектами ADO: Imports System.Data Imports System.Data.SqlClient 4. Добавьте конфигурационный файл приложения, используя технологию 7 и добавьте в него описание строки подключения к вашей базе данных МММ, используя технологию 8. Перед добавлением конфигурационного файла проверьте менеджер проектов «Solution Explorer» на наличие уже существующего файла конфигурации (app.config). Если он уже есть, то откройте его (двойным щелчком) и добавляйте описание строки подключения в уже существующий. 5. В коде формы «Добавить магазин», в процедуре-обработчике кнопки «Добавить» опишите переменную и создайте экземпляр объекта Connection, с использованием строки подключения, описанной вами ранее в конфигурационном файле, используя технологии 9,10 6. Опишите переменную и создайте экземпляр объекта Cоmmand, используя технологию 11. Создаваемый вами объект Command должен быть подключен к ранее (в пятом пункте) созданному объекту Connection. 7. Задайте для только что созданного объекта Command текст запроса на вставку данных (INSERT) с использованием информации из текстовых полей на форме, используя ОДНУ из технологий 12,13 или 14. 8. Откройте подключение к БД, используя технологию 15. 9. Выполните одним из методов объект Command, используя ОДНУ из технологий 16,17 или 18 10. Запустите проект, добавьте новую запись в таблицу Магазины. 11. Откройте базу данных МММ в среде MS SSMS. Убедитесь в появлении новой строки в таблице «Магазины» Практическая работа № 1.56. Создание, удаление и редактирование данных в отсоединенной среде Цель работы: Познакомиться со свойствами и методами автономных объектов: DataSet, DataAdapter, DataTable, DataView. Задание №1: В среде MS Visual Studio необходимо создать Windows-приложение, которое позволит просматривать данные из таблицы Магазины с использованием объекта DataSet, DataAdapter. Форма представлена на рисунке 13. 18 Рисунок 13 – Форма для просмотра таблицы «Магазины» Ход работы: Указание: При выполнении данного задания используйте лекционный материал (Лекция - Работа с автономными объектами ADO). 1. Добавьте в проект новую форму и добавьте на форму следующие компоненты: Label, ListBox, 2 Button в соответствии с рисунком 13 2. Добавьте обработчик для открытия только что добавленной формы при выборе в главном меню проекта пункта СправочникиМагазины Просмотр 3. Добавьте в код формы ссылку на пространства имен для работы с объектами ADO: Imports System.Data Imports System.Data.SqlClient 4. Добавьте в код формы ссылку на пространства имен для работы с файлами конфигурации Imports System.Configuration 5. Необходимо написать обработчик на кнопку «Загрузить информацию о магазинах» для возможности просмотра информации о магазинах (таблица Магазины БД МММ). Для этого в обработчике: опишите и создайте переменную-экземпляр класса DataSet, используя технологию 20; опишите и создайте переменную-экземпляр класса DataAdapter, используя технологию 21; вызовите метод Fill объекта DataAdapter для заполнения объекта DataSet, используя технологию 22; загрузите данные из объекта DataSet в объект ListBox, используя код, объединяющий технологии 23,24 6. Запустите проект и проверьте работу только что созданной формы. Задание №2: В среде MS Visual Studio необходимо создать Windows-приложение, которое позволит просматривать, добавлять и удалять данные из таблицы Магазины с использованием автономных объектов. Форма представлена на рисунке 14. 19 Рисунок 14 – Форма для общей работы с таблицей «Магазины» Ход работы: Указание: При выполнении данного задания используйте лекционный материал (Лекция - Работа с автономными объектами ADO). 1. Добавьте в проект новую форму, добавьте на форму компоненты: DataGridView, button ( «Заполнить таблицу») 2. Добавьте обработчик для открытия только что добавленной формы при выборе в главном меню проекта пункта СправочникиМагазины Общая работа с магазинами 3. Добавьте в код формы ссылку на пространства имен для работы с объектами ADO: Imports System.Data Imports System.Data.SqlClient 4. Добавьте в код формы ссылку на пространства имен для работы с файлами конфигурации Imports System.Configuration 5. Опишите и создайте ГЛОБАЛЬНУЮ переменную-экземпляр класса DataSet, используя технологию 20 6. Опишите и создайте ГЛОБАЛЬНУЮ переменную-экземпляр класса DataAdapter: Dim ЗадайтеИмяОбъектаDataAdapter As New SqlDataAdapter 7. Далее необходимо написать обработчик на кнопку «Заполнить таблицу» для возможности просмотра полной! информации о магазинах (таблица Магазины БД МММ). Для этого в обработчике: задайте необходимые свойства объекта DataAdapter, используя технологию 25; вызовите метод Fill объекта DataAdapter для заполнения объекта DataSet, используя технологию 22; загрузите данные из объекта DataSet в объект DataGridView, используя технологию 26. 8. Вернитесь на форму и с помощью окна свойств (Properties) задайте для DataGridView1 следующие свойства: MultiSelect = False (возможно выделение только одного элемента) EditMode = EditProgrammatically (невозможность редактирования DataGrid прямо из формы) 9. Добавьте на форму еще одну кнопку («Добавить запись»). Добавьте попарно несколько ЭУ TextBox и Label в соответствии с количеством столбцов в таблице «Магазины» для добавления записей в эту таблицу (рисунок 14). Создадим обработчик на кнопку «Добавить запись», который добавляет запись в DataGridView1 из текстовых полей. Для этого в обработчике: создайте новый экземпляр строки Магазины, используя технологию 27; присвойте значения каждому столбцу строки из соответствующего текстового поля, используя технологию 28; добавьте новую строку к коллекции Rows таблицы Магазины, используя технологию 29; 20 10. Добавьте на форму еще одну кнопку («Удалить запись»). Напишем обработчик на кнопку «Удалить запись», который удаляет запись из DataGridView1. Для этого в обработчике: для удаления необходимой строки ее надо найти, вызвав метод Find. Для того, чтобы этот метод работал необходимо создать в объекте DataTable первичный ключ. Создайте первичный ключ, используя технологию 30; присвойте значения каждому столбцу строки из соответствующего текстового поля, используя технологию 31; удалите найденную строку из коллекции Rows таблицы Магазины, используя технологию 32; 11. Запустите созданную форму. Проверьте работу кнопок. Убедитесь, что изменения, произведенные вами в DataGridView не записываются в базу данных. 12. Запись обновлений в базу данных. Добавьте на форму еще одну кнопку («Запись изменений в базу»). Напишем обработчик на эту кнопку, используя метод Update объекта DataAdapter. Для того, чтобы метод Update корректно работал, необходимо задать команды INSERT, UPDATE, DELETE для объекта DataAdapter. Для этого можно воспользоваться SqlCommandBuilder (мы так и сделаем) или создавать команды вручную. Для того, чтобы можно было воспользоваться объектом SqlCommandBuilder необходимо, чтобы в именах объектов БД не было пробелов, иначе автоматической генерации команд вы не добьетесь. Поэтому запустите SQL Servеr Management Studio, убедитесь, что в таблице Магазин нет пробелов в названиях таблицы и названиях столбцов. Если эти пробелы есть, то переименуйте названия столбцов. Далее в MS Visual Studio необходимо выполнить следующие действия в обработчике «Запись изменений в базу»: создайте новый экземпляр объекта SqlCommandBuilder, используя технологию 33; вызовите метод Update объекта DataAdapter и проверьте произошли ли обновления, если они произошли, то сообщите об этом пользователю. Используйте технологию 34; обновите информацию на форме ИмяОбъектаDataSet.AcceptChanges() ИмяОбъектаDataSet.Clear() ИмяОбъектаDataAdapter .Fill(ИмяОбъектаDataSet) ИмяDataGridView.DataSource = ИмяОбъектаDataSet.Tables(НомерТаблицыВНаборе) Задание №3: В среде MS Visual Studio необходимо создать Windows-приложение, которое позволит производить просмотр, сортировку, фильтрацию, добавление и удаление данных из таблицы «Магазины» с помощью объекта DataView. Форма представлена на рисунке 15. Рисунок 15 – Форма для сортировки и фильтрации Магазинов Ход работы: Указание: При выполнении данного задания используйте лекционный материал (Лекция - Работа с автономными объектами ADO). 21 1. Добавьте в Ваш проект новую форму. Добавьте в форму следующие элементы управления: DataGridView, Label+ComboBox, Button, Label+ComboBox, Label+TextBox, 3 Button. Настройте подписи добавленных элементов в соответствии с рисунком 15. 2. Добавьте обработчик для открытия только что добавленной формы при выборе в главном меню проекта пункта СправочникиМагазины Сортировка и фильтрация 3. Добавьте в код формы описание ГЛОБАЛЬНОЙ для проекта переменной типа DataView: Dim ЗадайтеИмяПеременной DataView As DataView При выполнении данного задания объекты DataSet и DataAdapter мы будем создавать с помощью мастера (а не программно, как в предыдущих заданиях). 4. Создайте новый источник данных, включающий в себя всю информацию из таблицы Магазины, используя технологию 19. 5. Постройте проект. Для этого в главном меню выберите Build Build проект. После построения проекта в панели инструментов ToolBox должны появиться новые объекты DataSet и TableAdapter(аналог DataAdapter для одной таблицы). Найдите МагазинTableAdapter и перетащите его на форму. Найдите МММ_вашаБД_DataSet и перетащите его на форму. 6. Добавьте обработчик на событие Form_Load. В этом обработчике необходимо заполнить созданный мастером DataSet, вызвать конструктор DataView и указать DataView в качестве источника данных для DataGridView на форме: ИмяTableAdapterКоторыйСоздалМастериВыПеретащилиНаФорму.Fill(ИмяDataSetКот орыйСоздалМастериВыПеретащилиНаФорму.Имя таблицы с магазинами в вашей БД) ИмяПеременной DataView = New DataView ( ИмяDataSet КоторыйСоздал Мастер иВы Перетащили НаФорму.Имя таблицы с магазинами в вашей БД) ИмяDataGridView1.DataSource = ИмяПеременной DataView 7. Добавьте в Combobox, который отвечает за фильтрацию (см. рисунок 15) элементы = названиям столбцов из таблицы «Магазины» вашей БД. Для этого откройте БД на SQL Server и внимательно просмотрите названия столбцов, чтобы не ошибиться. Затем в VisualStudio для Combobox2 с помощью окна Properties добавьте элементы Items. 8. Напишите обработчик на кнопку «Выполнить фильтр». Для фильтрации данных в DataView используется свойство RowFilter этого объекта, которое устанавливается равным строке фильтрации. Синтаксис строки фильтрации таков: ИмяСтолбцаВ таблице = 'ЗначениеДляОтбора', например Город='Омск'. Таким образом, в нашем обработчике мы формируем строку фильтра и записываем ее в свойство RowFilter объекта DataView. Dim filterSTR As String filterSTR = ComboBox2.Text & "='" & TextBox1.Text & "'" ИмяПеременной DataView.RowFilter = filterSTR 9. Напишите обработчик на кнопку «Снять фильтр» ИмяПеременной DataView.RowFilter = "" 10. Напишите обработчик на кнопку «Записать все изменения в базу». Для записи всех изменений в БД используется, как и в предыдущем задании метод Update объекта DataAdapter. В этом задании объект DataAdapter для одной таблицы нам создал мастер сразу со всеми командами (Insert, Delete, Update, Select). Экземпляр этого объекта вы создали, перетащив на форму TableAdapter. Таким образом, обработчик будет таким: ‘ исправьте имена объектов на ваши МагазинTableAdapter1.Update(MmM_SQLDataSet1.магазин) 11. Запустите форму. Проверьте работу фильтра. Добавьте, измените, удалите строки с данными в объекте DataGridView с клавиатуры. Проверьте работу кнопки «Записать изменения в базу» 12. САМОСТОЯТЕЛЬНО напишите обработчик на кнопку «Выполнить сортировку», пользуясь материалом из лекции «Объект DataView» Практическая работа № 1.57. Быстрое создание пользовательского интерфейса посредством связывания с данными Цель работы: Познакомиться с технологией создания связанных с данными элементов управления, ознакомиться со свойствами и методами объекта BindingSource. 22 Задание: Выполнение данной лабораторной работы расписано по шагам. В результате ее выполнения вы получите приложение для оформления заказа на продукцию компании МММ детские машины следующего вида. Приложение выполнено с использованием технологии связывания с данными. Обратите внимание на рисунок 16 – в поле код_магазина столбец подстановки: при выборе в списке Названия_магазина, в таблицу Заказов записывается код_магазина. Столбец Итого – вычисляемый. Рисунок 16 – Форма для работы с Заказами Ход работы: 1. Проверим и изменим при необходимости схему данных. Для этого откройте среду Microsoft SQL Server Management Studio и выполните следующее: измените при необходимости таблицу заказ так, чтобы она имела следующую структуру: (ключ) номер_заказа Int, не СЧЕТЧИК ! код_магазина int дата_заказа datetime измените при необходимости таблицу состав_заказа, чтобы она имела следующую структуру: (ключ) код_заказа int (ключ) код_модели int количество int стоимость money добавьте по 5 записей в таблицы «Заказ» и «Состав заказа» Схема данных для используемых в данной лабораторной таблиц должна выглядеть как на рисунке 17. Остальные таблицы БД оставьте без изменений. 23 Рисунок 17 – Схема данных для таблиц предметной области Заказ В пакете Windows Forms из состава Microsoft .NET Framework реализована поддержка связывания с данными. Благодаря связыванию появляется функциональная возможность вывода содержимого объекта DataSet в различных элементах управления, причем пользователь может изменять это содержимое. Коротко говоря, связывание с данными упрощает и ускоряет создание приложений для работы с данными, поскольку уменьшает размер кода, необходимого для создания пользовательского интерфейса. Этап 1. Создание объекта DataSet со строгим контролем типов 1. Добавьте в ваш проект новую форму. 2. Добавьте в главное меню вашего приложения пункт ЗаказОформить, и обработчик, который открывает только что добавленную форму при выборе данного пункта. 3. Создадим для задействованных в этой лабораторной связанных таблиц БД объект DataSet со строгим контролем типов, содержащий объекты DataTable. Выберите в главном меню Data Add New Data. Затем укажите “построитьновый источник данных на основе DataBase” Выберите строку подключения, с помощью которой вы подключитесь к БД MMM. Выберите для добавления в DataSet в таблице Заказ (все столбцы), в таблице состав_заказа (все столбцы), в таблице Модели (кодмодели, название модели), в таблице магазины (код_магазина, название_магазиа). Нажмите кнопку Finish. Теперь объект DataSet со строгим контролем типов можно использовать. Постройте проект (в главном меню выберите Build Build вашПроект) Убедитесь, что в панели инструментов ToolBox (ВВЕРХУ) мастер создал отдельные объекты TableAdapter, который инкапсулирует SqIDataAdapter автоматически для каждой таблицы, выбранной вами в мастере. 4. Начнем работу с таблицы ЗАКАЗЫ. Этап 2. Добавление простых связанных элементов управления в форму 1. Создадим простые связанные элементы для отображения (ввода) столбцов из таблицы Заказы. Для этого добавьте на форму 3 компонента Label для подписей столбцов, 2 компонента TextBox, и 1 DateTimePicker для отображения столбцов кодЗаказа, код_Магазина, дата_заказа. Измените свойство Text компонент Label на соответствующие названия столбцов - кодЗаказа, код_Магазина, дата_заказа. 2. Для связи элементов управления с полями БД в дальнейшем будет использоваться объект BindingSource.Класс BindingSource доступен как элемент закладки Data в окне Toolbox. Добавьте его на форму, перетащив из окна Toolbox. Чтобы связать класс BindingSource с объектом DatdTable из состава DataSet измените в окне Properties: 24 свойство DataSource = DataSetOrder (имя DataSet который вы создали на 1-ом этапе данной лабораторной работы). свойство DataMember= таблица (Заказ). Рассмотрим далее как простые ЭУ (например TextBox), можно связывать с классом BindingSource. 3. Сначала выберите элемент управления, который хотите связать (TextBox1), а затем в окне свойств откройте раздел DataBindings (он находится вверху окна свойств). Далее необходимо выполнить одно из действий: Для большинства элементов управления свойство, которое необходимо связать, должно быть указано в этом разделе. Если это так - Выберите свойство Text, затем выберите соответствующий столбец в ниспадающем списке (BindingSource Код_заказа) ИЛИ Если нужного вам свойства нет в коротком списке под разделом DataBindings указанного окна, нажмите кнопку с многоточием (...) в элементе Advanced под разделом DataBindings, а затем выберите требуемое свойство в появившемся диалоговом окне (свойство Text), а затем как в первом пункте. Аналогично свяжите TextBox2 с код_магазина, DateTimePicker с датой заказа. |