Главная страница
Навигация по странице:

  • ЗаказTableAdapter.Fill(Mmm_sqlDataSet3.заказ) Этап 4. Перемещение по результатам

  • Этап 5. Добавление и удаление элементов в BindingNavigator

  • Этап 6. Передача изменений

  • 1-ая строка

  • 3-ая строка

  • Этап 8. Совершенствование пользовательского интерфейса

  • Задания для самостоятельной работы. 1. Откройте форму, созданную в лабораторной работе №3 - Разработка формы для работы с данными в среде Vsual Studio без кода

  • Практическая работа № 1.58. Безопасность вMssqlServer Цель работы

  • Методические указания по выполнению лабораторных и практических работ по мдк


    Скачать 3.25 Mb.
    НазваниеМетодические указания по выполнению лабораторных и практических работ по мдк
    Дата23.01.2023
    Размер3.25 Mb.
    Формат файлаpdf
    Имя файла37._MU_PZ_PM.01_MDK_01.01_Razrabotka_programmnyx_moduley(1)_remo.pdf
    ТипМетодические указания
    #899980
    страница23 из 24
    1   ...   16   17   18   19   20   21   22   23   24
    Этап 3. Получение данных
    1. Откройте код события Load формы, и проверьте, сгенерировался ли там автоматически вызов метода Fill. (может быть с разницей в именах). Если нет такого кода запишите (исправив если это необходимо имена объектов). Найдите в лекционном материале для сего вызывается метод Fill объекта DataAdapter
    ЗаказTableAdapter.Fill(Mmm_sqlDataSet3.заказ)
    Этап 4. Перемещение по результатам
    2. Добавим на форму возможность навигации по записям. Перетащите элемент управления
    BindingNavigator с закладки Data Toolbox на свою форму. Выбрав элемент управления
    BindingNavigator, нажмите свойство BindingSource в окне Properties и выберите в ниспадающем списке объект BindingSource (созданный на 2-ом этапе).
    Этап 5. Добавление и удаление элементов в BindingNavigator
    Элемент управления BindingNavigator по умолчанию включает в себя кнопки, по- зволяющие пользователю добавлять и удалять элементы.
    Для демонстрации возможностей изменим действия связанные с кнопкой «Удалить» - чтобы на экран выводилось диалоговое окно с предложением пользователю подтвердить удаление текущего элемента. Существует следующая проблема - пока код выполняется, элемент управления BindingNavigator уже неявно вызывает метод RemoveCurrent соответствующего объекта BindingSource. Элемент управления BindingNavigator имеет свойство Deleteitem. Как только вы нажмете связанный с ним тип ToolStripitem, этот элемент вызовет метод RemoveCurrent
    соответствующего объекта BindingSource. Сбрасывание свойства Deleteitem элемента управления
    BindingNavigator не позволит последнему неявно вызвать указанный метод.
    1. В окне Properties для элемента управления BindingNavigator выберите свойство DeleteItem.
    Затем выберите вверху списка вариант none.
    2. Теперь дважды щелкните пункт Delete ToolStripButton на элементе управления
    BindingNavigator — и добавьте следующий код.
    Dim result As DialogResult result = MsgBox("Вы действительно хотите удалить заказ?", MsgBoxStyle.YesNo)
    If result = Windows.Forms.DialogResult.Yes Then
    BindingSource1.RemoveCurrent()
    End If
    Этап 6. Передача изменений
    Добавим на навигатор кнопку “Сохранить” для передачи изменений в БД
    1. Для добавления нового элемента выберите элемент управления BindingNavigator. На нем справа от последнего элемента появится маленькая направленная вниз стрелочка. Нажмите эту стрелку и вы увидите список всех доступных элементов (Button, Label и других). Добавьте новый элемент Button, задайте ему Свойство DisplayStyle=Text, Cвойство text = Сохранить.

    25 2. Добавьте в событие «Щелчок по кнопке Сохранить» соответствующий обработчик. (если необходимо измените имен ЭУ так как они называются у вас)
    Me.Validate
    Me.BindingSource1.EndEdit()
    Me. ЗаказTableAdapter.Update(me.Mmm_sqlDataSet)
    1-ая строка = После вызова метода Validate форма проверяет достоверность данных.
    2-ая строка = Благодаря объекту BindingSource можно соответственно записывать или пропускать изменения с помощью методов EndEdit или CancelEdit. При переxоде к другой записи будет неявно вызван метод EndEdit, если изменения были внесены через связанные элементы управления.
    3-ая строка = метод Update передает отложенные изменения, хранимые в объекте
    DataTable.
    Этап 7. Просмотр дочерних данных
    На данном этапе приложение позволяет просматривать и изменять данные таблицы
    Заказы. Доработаем форму так, чтобы можно было работать с составом заказов.
    1. Откройте в конструкторе класс DataSet со строгим контролем типов (созданный на 1-ом этапе данной лабораторной работе) – это можно сделать, например, дважды щелкнув по объекту
    DataSet в окне SolutionExplorer.
    2. Конструктор класса DataSet со строгим контролем типов автоматически добавляет объект
    DataRelation между двумя таблицами DataSet, но не связывает новый объект DataRelation с объектом ForeignKeyConstraint. Дважды щелкните объект DataRelation между таблицами
    Заказ и Состав_заказа в конструкторе, выберите опцию Both Relation And Foreign Key
    Constraint и задайте свойствам Update Rule и Delete Rule значения Cascade.
    3. Закройте конструктор окна DataSet с сохранением
    4. Теперьпосмотрите содержимое объекта DataSet со строгим контролем типов в окне Data
    Sources. Вы увидите два отдельных узла состав_заказа, как на рисунке 18: один из узлов — брат, а второй — сын узла «Заказ».
    Рисунок 18 – Источник данных
    Если пытаться перетащить один из узлов на форму, то произойдет создание объектов
    DataGndView, TableAdapter, BindingSource для работы с составом_заказов. Разница между показанными на рисунке двумя объектами состоит в том, что при перетаскивании узла состав_заказа БРАТ элемент управления DataGridView выводит на экран все записи таблицы состав_заказа. Если перетащить узел состав_заказа, который приходится узлу заказ сыном, то в
    DataGridView выводится на экран будут только записи таблицы состав_заказа для нужного нам заказа.
    ПОЭТОМУ перетащите на вашу форму объект-сын состав_заказов.
    5. Для объекта DataSet необходимо, чтобы записи в таблице состав_заказа соответствовали выбранному в данный момент в верхней части формы значению таблицы Заказ. Попробуйте запустить форму. Запустив форму в таком виде, как мы сейчас ее сделали, вы получите сообщение об исключительной ситуации. Чтобы указанного сообщения не было, необходимо изменить код таким образом, чтобы код для получения информации о составе заказа появлялся после запроса информации о заказе. Откройте код события Load формы, и исправьте код следующим образом (возможно имена объектов у вас будут другими). Порядок

    26 вызова метода Fill должен быть именно таким (сначала для родительской Заказ, потом для дочерней состав_заказов)
    Me.ЗаказTableAdapter.Fill(Me.Mmm_sqlDataSet3.заказ)
    Me.Состав_заказаTableAdapter.Fill(Me.Mmm_sqlDataSet3.состав_заказа)
    Этап 8. Совершенствование пользовательского интерфейса
    Cделаем так, чтобы работать с приложением стало удобнее. Основные усовершенствования формы это:
    1. элемент управления СотbоВох для таблицы Магазины,
    Создадим аналог МастераПодстановки в Access для поля Код_магазина в оформлении таблиц Заказы. Для этого:

    Убедитесь, что информация из таблицы Магазины (код, название) ранее была добавлена вами в объект DataSet со строгим контролем типов, например, открыв его в окне DataSolution. (если информации из таблицы Магазины нет, добавьте ее, например, с помощью контекстного меню на DataSet  Configure DataSet with Wizard)

    Удалите элемент управления TextBox, который отображал столбец код_магазина. Теперь перетащите элемент управления ComboBox из окна Toolbox на форму. Нажмите небольшую стрелку прямо над этим элементом управления и укажите, что вы хотите использовать элементы, которые можно связывать с данными «Use data Bound Items», как изображено на рисунке 19.
    Рисунок 19 – Смарт-теги элемента управления ComboBox

    Диалоговое окно под названием ComboBox Tasks расширится. В ниспадающем списке Data
    Source выберите таблицу Магазины (под элементами Other Data Sources  Project Data
    Sources  ВашDataSet Магазины).

    Теперь задайте свойству DisplayMember имя столбца название_магазина, а свойству
    ValueMember имя столбца код_магазина.

    Наконец, задайте свойству SelectedValue имя столбца код_магазина ИЗ объекта
    BindingSource, созданного вами для таблицы Заказы.
    2. улучшенный формат для числовых значений и столбцы на основе выражения
    (название_модели и суммаИтого), предназначенные для отображения на экране полезных расчетных значений.
    Добавим в наше приложение возможность узнать общую стоимость каждого вида товара, а также общую сумму всего товара в заказе. Для создания столбцов, значения которых вычисляются на основе выражений можно использовать свойство Expression объекта
    DataColumn.

    Таблица состав_заказа содержит столбцы количество и стоимость. Откройте в конструкторе объект DataSet (2 раза левой кнопкой мыши по dataset в окне SolutionExplorer). С помощью контекстного меню добавьте в таблицу Состав_заказа новый столбец (Add  column) с названием итого. В окне свойств задайте свойству Expression объекта DataColumn значение количество*стоимость.

    Аналогично в открытом окне конструктора DataSet в таблицу Заказы добавьте столбец сумма_заказа, который отображает общую сумму заказа, задав свойству Expression объекта
    DataColumn значение Sum(Child(FK_состав_заказа_заказ).итого)

    Свойству DataType всех только что добавленных объектов DataColumn нужно присвоить значение System.Decimal.

    27

    После этого все новые столбцы можно добавить на форму. Для создания нового столбца сумма_заказа перетащите его из окна Data Sources на форму. Чтобы поместить столбец итого на элемент управления DataGridView, щелкните правой кнопкой мыши структуру, выберите сначала пункт Add Column, а затем — столбец итого.

    Тип данных нового столбца сумма_заказа — System.Decimal. Поэтому элемент управления
    TextBox на форме с информацией отображает содержимое этого столбца в стандартном числовом формате. Так, стоимость единицы товара, равная 491,20 руб, в элементе TextBox
    будет отображаться как 491,2000. Изменим формат этого столбца, чтобы данные отображались в более привычном виде. Для этого выберите этот элемент на форме в среде
    Visual Studio. Затем перейдите в окно Properties, откройте свойство DataBindings, расположенное в верхней части окна, выберите вариант Advanced и нажмите кнопку с многоточием (...). Появится диалоговое окно Formatting and Advanced Binding. Задайте свойству FormatType значение Currency. Теперь элемент управления TextBox будет отображать содержимое столбца в формате денежных единиц ($491.20, €491.20 и т. п.).

    Элемент управления DataGridView также позволяет указывать формат строки для столбцов в структуре. Выберите на форме элемент управления DataGridView, щелкните его правой кнопкой мыши и выберите в контекстном меню пункт Edit Columns. В появившемся диалоговом окне выберите столбец, формат которого необходимо изменить (столбец Итого), выберите свойство DefauItCellStyle и нажмите кнопку с многоточием (...).В появившемся диалоговом окне CellStyle Builder выберите свойство Format и нажмите кнопку с многоточием
    (...). Наконец, в появившемся диалоговом окне Format String укажите нужный формат.
    Задания для самостоятельной работы.
    1. Откройте форму, созданную в лабораторной работе №3 - Разработка формы для работы с
    данными в среде Vsual Studio без кода, и убедитесь, что при использовании вами мастера он автоматически добавил объект ИмяТаблицыBindingSource в форму.
    2. Добавьте на форму следующие элементы управления: 1 Label (название модели), 1 элемент
    TextBox и 2 кнопки («Поиск по названию», «Фильтр по названию») и напишите обработчики на данные кнопки, выполняющие поиск и фильтр соотвественно, с использованием свойств и методов объекта BindingSource.
    Практическая работа № 1.58. Безопасность вMssqlServer
    Цель работы:Познакомиться с политикой безопасности MS SQL Server, с возможностями Transact – SQL по созданию схем, логинов, пользователей и определения прав пользователей. Научиться организовывать со стороны клиентского приложения удаленное управление правами доступа к данным БД.
    Задание №1: Создание логинов, пользователей и предоставление прав пользователям средствами transact-sql.
    Указание: Перед выполнением работы ознакомьтесь с теоретическим материалом в
    презентации к лекции Введение в SQL Server, тема Безопасность.
    Ход работы:
    1. Запустите MS SQL Server Management Studio, подключитесь к серверу, используя технологию
    1 2. Выберите контекстом свою базу данных свою БД, используя технологию 6 3. Найдите на панели инструментов среды кнопку «Создать запрос» и нажмите ее.
    4. С помощью команд Transact – SQL создадим новый логин для вашей базы данных с именем
    «qwerty» и паролем «123456». Для создания логинов используется запрос CREATE LOGIN.
    Ознакомьтесь с синтаксисом запроса, представленным на рисунке 20.

    28
    Рисунок 20 – Синтаксис запроса Create Login
    5. Для создания нашего логина необходимо набрать и выполнить следующий запрос:
    CREATE LOGIN qwerty WITH PASSWORD='123456'
    6. После создания логина, можно приступить к созданию пользователя для этого логина.
    Создадим одноименного пользователя «qwerty». Для создания пользователей используется запрос CREATE USER. Ознакомьтесь с синтаксисом запроса, представленным на рисунке 21.
    Рисунок 21 – Синтаксис запроса Create User
    7. Для создания нашего пользователя необходимо набрать и выполнить следующий запрос:
    CREATE USER qwerty FOR LOGIN qwerty
    8. После добавления логина и пользователя отключитесь от сервера, нажав в обозревателе объектов кнопку «Отключить», изображение которой представлено на рисунке 22.

    29
    Рисунок 22 – Отключение от сервера
    9. Подключитесь к серверу с помощью нажатия на кнопку «Подключение» под именем qwerty с паролем 123456 10. Разверните в обозревателе объектов свою БД, разверните узел «Таблицы» и убедитесь, что данный пользователь не имеет доступа ни к каким таблицам БД.
    11. Отключитесь и подключитесь заново к серверу с правами администратора (то есть пользователь sa).
    12. Добавим для пользователя qwerty возможность просмотра таблицы Модель и добавления записей в таблицу Модель. Для передачи прав пользователю используется SQL запрос
    GRANT. Ознакомьтесь с синтаксисом запроса, представленным на рисунке 23.
    Рисунок 23 – Синтаксис запроса GRANT
    13. Для передачи прав пользователю qwerty на просмотр и добавления записей в таблице Модель необходимо набрать и выполнить следующие два запроса:
    Grant Select On модель to qwerty;
    Grant Insert On модель to qwerty;
    14. После успешного выполнения предыдущих запросов, отключитесь и подключитесь заново к серверу как пользователь qwerty.
    15. Разверните в обозревателе объектов свою БД, разверните узел «Таблицы» таблица Модель, просмотрите записи, добавьте новую и убедитесь, что данный пользователь имеет права просмотра и добавления для таблицы.
    Задание №2: В среде MS Visual Studio необходимо создать Windows-приложение, которое позволит добавлять новых пользователей для вашей БД вида, представленного на рисунке 24.
    Рисунок 24 – Форма для добавления пользователя
    Ход работы:

    30 1. Добавьте в проект новую форму. Добавьте на форму следующие компоненты: 2 Label, 2 textBox, 1 Button и измените их свойства в соответствии с рисунком 24.
    2. Добавьте обработчик для открытия только что добавленной формы при выборе в главном меню проекта пункта АдминистрированиеДобавить пользователя.
    3. Добавьте в код формы ссылку на пространства имен для работы с объектами ADO:
    Imports System.Data
    Imports System.Data.SqlClient
    4. В коде формы «Добавить пользователя», в процедуре-обработчике кнопки «Добавить» опишите переменную и создайте экземпляр объекта Connection и задайте ей параметры подключения, используя технологии 9,10.
    5. Опишите переменную и создайте экземпляр объекта Cоmmand, используя технологию 11.
    Создаваемый вами объект Command должен быть подключен к ранее (в четвертом пункте) созданному объекту Connection.
    6. Задайте для только что созданного объекта Command текст запроса на добавление логина
    (CREATE LOGIN) с использованием информации из текстовых полей на форме, используя технологию 12 ИЛИ технологию 13.
    7. Откройте подключение к БД, используя технологию 15.
    8. Выполните одним из методов объект Command, используя ОДНУ из следующих технологий
    16,17,18.
    9. Закройте подключение к БД, используя технологию 15.
    10. Запустите проект, добавьте нового пользователя к вашей БД.
    11. Подключитесь к базе данных МММ в среде MS SSMS, используя технологию 1 под именем только что добавленного пользователя. Убедитесь что это возможно.
    Задание №3. В среде MS Visual Studio необходимо создать Windows-приложение, которое позволит добавлять новых пользователей для вашей БД вида, изображенного на рисунке 25.
    Рисунок 25 – Форма для добавления привилегий пользователя
    Ход работы:
    1. Добавьте в проект новую форму. Добавьте на форму следующие компоненты: 3 Label, 2
    ComboBox, 1 textBox, 1 Button и измените их свойства в соответствии с рисунком 25. В список
    ComboBox1 занести перечень значений:

    INSERT;

    UPDATE;

    31

    DELETE.
    В список ComboBox2 занести перечень значений = название таблиц Вашей БД, например:

    Модель;

    Готовый_продукт;

    Заказ;

    Состав_заказа;

    Магазин.
    2. Добавьте обработчик для открытия только что добавленной формы при выборе в главном меню проекта пункта АдминистрированиеДобавить права для пользователя
    3. Добавьте в код формы ссылку на пространства имен для работы с объектами ADO:
    Imports System.Data
    Imports System.Data.SqlClient
    4. В коде формы «Добавить права для пользователя», в процедуре-обработчике кнопки
    «Назначить привилегию» опишите переменную и создайте экземпляр объекта Connection и задайте ей параметры подключения, используя технологии 9,10.
    5. Опишите переменную и создайте экземпляр объекта Cоmmand, используя технологию 11.
    Cоздаваемый вами объект Command должен быть подключен к ранее созданному объекту
    Connection.
    6. Задайте для только что созданного объекта Command текст запроса на добавление Прав пользователю (GRANT) с использованием информации из полей со списком и текстовых полей на форме, используя технологию 12 ИЛИ технологию 13.
    7. Откройте подключение к БД, используя технологию 15.
    8. Выполните одним из методов объект Command, используя ОДНУ из следующих технологий
    16,17,18.
    9. Закройте подключение к БД, используя технологию 15.
    10. Запустите проект, добавьте для какого-либо пользователя права на просмотр таблицы Модели вашей БД.
    11. Подключитесь к базе данных МММ в среде MS SSMS под именем только что добавленного пользователя. Убедитесь что возможно просматривать записи из таблицы Модели.
    1   ...   16   17   18   19   20   21   22   23   24


    написать администратору сайта