Разработка приложений баз данных
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Базы данных
Тема 3. Разработка приложений баз данных
Преподаватель: к.ф.н.,
доцент кафедры АСУ,
Powerpoint Templates
Муртазина М.Ш.
План
1. Поставщики данных. SqlClient
2. Объекты работы с данными для MS SQL Server
3. Создание Windows-приложения баз данных
Powerpoint Templates
2
Поставщики данных. SqlClient
Поставщик данных (data provider) — это набор классов ADO.NET,
которые позволяют получать доступ к определенной базе данных,
выполнять команды SQL и извлекать данные.
Все поставщики данных содержат классы соединений, адаптеров,
команд.
Поставщики данных, которые включены в .NET Framework:
1. Поставщик данных .NET Framework для SQL Server
2. Поставщик данных .NET Framework для OLE DB
3. Поставщик данных .NET Framework для ODBC
4. Поставщик данных .NET Framework для Oracle
5. EntityClient - поставщик
6. Поставщик данных .NET Framework для SQL Server Compact 4,0.
Powerpoint Templates
3
Поставщики данных. SqlClient
Название
Назначение
Поставщик данных .NET Предоставляет доступ к данным для Microsoft SQL Server.
Framework для SQL Server Использует пространство имен System.Data.SqlClient .
Поставщик данных .NET
Framework для OLE DB
Для источников данных OLE DB. Использует пространство имен
System.Data.OleDb .
Поставщик данных .NET
Framework для ODBC
Для источников данных ODBC. Использует пространство имен
System.Data.Odbc .
Поставщик данных .NET
Framework для Oracle
Для источников данных Oracle. Поставщик данных .NET Framework
для Oracle поддерживает клиентское программное обеспечение
Oracle версии 8.1.7 и более поздних версий и использует
пространство имен System.Data.OracleClient.
EntityClient - поставщик
Предоставляет доступ к данным для приложений модели EDM
(Entity Data Model). Использует пространство имен
System.Data.EntityClient .
Поставщик данных .NET Предоставляет доступ к данным для Microsoft SQL Server Compact
Framework для SQL Server 4,0. Использует пространство имен System.Data.SqlServerCe .
Compact 4,0.
Powerpoint Templates
4
Поставщики данных. SqlClient
Пространство имен System.Data.SqlClient является поставщиком
данных платформы .NET для SQL Server.
Пространство имен – группа объектов, выполняющих сходные
функции.
Пространство
имен
System.Data.SqlClient
содержит
классы
SqlConnection, SqlDataAdapter , SqlCommand и другие.
Powerpoint Templates
5
Объекты работы с данными для MS SQL Server
Объект
DataSet
Назначение
DataSet – это находящийся в памяти объект, используемый
в приложении для представления данных, который
позволяет сохранять результаты, возвращаемые командами
и адаптерами данных
DataTable
Объект представляет одну таблицу данных в памяти.
SqlDataAdapter SqlDataAdapter – это адаптер данных для MS SQL Server.
Адаптер данных определяет четыре свойства для работы с
операторами
DML (SELECT, INSERT, UPDATE,
DELETE):
SelectCommand,
InsertCommand,
UpdateCommand и DeleteCommand.
SqlConnection Объект SqlConnection представляет собой уникальный
сеанс соединения с MS SQL Server
SqlComand
Объект SqlComand представляет инструкцию Transact-SQL
или хранимую процедуру, выполняемую над базой данных
Powerpoint Templates
6
MS SQL Server.
Создание Windows-приложения
баз данных
Типичная схема для приложений БД в ADO.NET такова.
1. Создается соединение с базой данных – класс Connection, который
обеспечивается необходимой информацией – строкой соединения.
2. Для участков программы, где необходимо исполнение SQL-команд
сразу в БД создается объект Command и задается команда, которую
необходимо выполнить . Для участков – где нужно получить данные для
последующего использования без связи с базой данных создается класс
DataAdapter и с его помощью сохраняются данные в DataSet или в
DataTable.
При этом сохранение данных в БД происходит по
требованию. При этом для отображения и редактирования данных,
Powerpoint
TemplatesDataGridView .
например, в DataTable может
использоваться
7
Объект Connection
Объект Connection для соединения с базой данных нуждается в строке
соединения для указания пути к СУБД и входа в систему.
Обычно для приложения предполагается создание одного объекта
Connection, поэтому его объявление делается не в модуле какой-то
формы, а в главном модуле.
Powerpoint Templates
8
Объект Connection
Объект Connection имеет свойства ConnectionString.
ConnectionString - это свойство, которое хранит строку подключения.
Строка подключения включает имя источника базы данных и другие
параметры,
необходимые
для
установки
исходного
подключения.
Значение по умолчанию - пустая строка.
Powerpoint Templates
9
Объект Connection
SQL Server поддерживает два режима проверки подлинности:
1. режим проверки подлинности Windows
2. режим смешанной проверки подлинности.
Строка подключения будет зависит от выбранного режима.
Powerpoint Templates
10
Объект Connection
При Windows-аутентификации используется строка:
"Server=СЕРВЕР; Initial Catalog=БД; Integrated Security= Значение;
Persist Security Info= Значение; "
Подключение к названному экземпляру сервера:
"Data Source=ИМЕННОВАННЫЙ ЭКЗЕМПЛЯР; Initial Catalog=БД;
Integrated Security=Значение; Persist Security Info=Значение; "
Powerpoint Templates
11
Объект Connection
Integrated Security – определяет нужно режим аутентификации
При значениях SSPI и True – режим проверки подлинности Windows .
При указании этих значений используется учетная запись пользователя,
логин и пароль вводить не требуется.
Когда используется проверка подлинности Windows, пользователей
проверяет операционная система Windows, а доступ к ресурсам сервера и
базы данных определяется предоставлением разрешений пользователям и
группам Windows.
SSPI - сервис аутентификации Microsoft Windows NT.
Powerpoint Templates
12
Объект Connection
При смешанной аутентификации используется строка:
"Server=СЕРВЕР; Initial Catalog=БД; Integrated Security= Значение;
Persist Security Info= Значение; "
Подключение к названному экземпляру сервера:
"Data Source=ИМЕННОВАННЫЙ ЭКЗЕМПЛЯР; Initial Catalog=БД;
Integrated Security=Значение; Persist Security Info=Значение; "
Powerpoint Templates
13
Объект Connection
Persist Security Info – определяет доступ к конфиденциальным данным.
Значение true или yes позволяет получить из строки соединения
конфиденциальные данные (в том числе идентификатор пользователя и
пароль) после открытия соединения.
Пример подключения к именованному экземпляру SQL Server
"Data Source=MYPC\SQLEXPRESS; Initial Catalog=Sales; Integrated
Security=SSPI; Persist Security Info=False; "
Powerpoint Templates
14
3. Создание Windows-приложения
баз данных
Powerpoint Templates
15
Назначение разрабатываемого приложения
Разрабатываемое
приложения
–
является
модулем
системного
технолога, который работает с пользователями системы (добавляет,
удаляет, восстанавливает, сбрасывает пароли).
Доступ к приложению происходит по учетной записи (режим
аутентификации MS SQL Server должен быть смешанный).
В качестве учетной записи используется – созданное имя для входа к
базе данных с правами владельца БД.
Для упражнения используется одна таблица «Users», которая будет
расположена в БД «Sales» .
Powerpoint Templates
16
Назначение разрабатываемого приложения
Powerpoint Templates
17
Проверяем режим аутентификации
Powerpoint Templates
18
Проверяем режим аутентификации
Powerpoint Templates
19
Проверяем режим аутентификации
Если
вы
сменили
режим
аутентификации
SQL-сервер
нужно
перезапустить.
Powerpoint Templates
20
Создание имени входа
Имя входа — это субъект безопасности, с помощью которого
система безопасности может проверить подлинность лица или
сущности.
Имя
входа
пользователю
необходимо
для
соединения
с SQL Server.
Можно создать имя входа на основе
участника
Windows
пользователя
или
группы
(например,
домена
Windows), либо на основе пользователя, не
являющегося
участником
Windows
(например, имени входа SQL Server ).
Powerpoint Templates
21
Создание имени входа SQL Server
Powerpoint Templates
22
Создание имени входа SQL Server
Powerpoint Templates
23
Создание имени входа
Для подключения к определенной базе данных на экземпляре SQL Server имя
входа должно быть сопоставлено с пользователем базы данных.
Разрешения
данных
внутри
базы
предоставляются
запрещаются
для
и
пользователя
базы данных, а не имени входа.
Разрешения, областью которых
является
Server
CREATE
весь
экземпляр
(например,
SQL
разрешение
ENDPOINT),
могут
предоставляться именам входов.
Powerpoint Templates
24
Проверка работоспособности
имени входа
После создания имени входа, попробовать под ним подключиться к базе
данных и убедится, что действия с базой данных доступны пользователю,
а также что пользователю не доступны данные других пользовательских
базы данных
Powerpoint Templates
25
Проверка работоспособности
имени входа
Powerpoint Templates
26
Имена входа
При подключении к SQL Server по имени входа идентификатор
проверяется в базе данных master.
При использовании пользователей автономной базы данных имя для
входа не требуется.
Автономная база данных — это база данных, изолированная от других
баз данных и SQL Server (и базы данных master), на котором размещена
эта база данных.
SQL Server поддерживает пользователей автономной базы данных для
проверки подлинности Windows и SQL Server .
Powerpoint Templates
27
Таблица «Users» в БД «Sales»
Создаем таблицу.
И далее переходим к созданию проекта приложения в среде Visual
Studio (язык VB)
Powerpoint Templates
28
Создание проекта
Создать новый проект
Powerpoint Templates
29
Создание проекта
Выбрать тип проекта – Windows-приложение
Powerpoint Templates
30
Создание проекта
Переименуйте созданную форму в frmMain
Powerpoint Templates
31
Требования к именам в проекте
Все формы (как свойство Name формы, так и сам файл формы),
элементы управления, создаваемые объекты и переменные должны иметь
осмысленные имена.
Использование имен типа Form1, TextBox1, a, b, sss1111 НЕ
ДОПУСКАЕТ,
код
с
бессмысленными
именами
является
не
читаемым!!!!
Powerpoint Templates
32
Графический интерфейс форм
Создаваемое приложение будет иметь MDI-интерфейс для главного
окна.
Многодокументный интерфейс (англ. multiple document interface,
MDI) — способ организации графического интерфейса пользователя,
предполагающий
использование
оконного
интерфейса,
в
котором
большинство окон (исключая, как правило, только модальные окна)
расположены внутри одного общего окна.
Этим он и отличается от SDI, в котором окна располагаются независимо
друг от друга.
По умолчанию форма имеет тип SDI.
Powerpoint Templates
33
Графический интерфейс форм
Далее поменяйте тип интерфейса, состояние окна при открытии
приложения, заголовок окна.
Powerpoint Templates
34
Создание главного меню
Добавьте меню, используя компонент MenuStip, задайте его название.
Powerpoint Templates
35
Создание главного меню
Создайте структуры меню
1. Создайте пункт «Файл», подпункт «Соединение с сервером»,
подпункт «Установить».
2. Задайте имя для пункта «Установить», которое будет использоваться
в программном коде.
Powerpoint Templates
36
Создание главного меню
Создайте структуры меню
3. Создайте следующую структуру меню и задайте имена пунктам меню
itemMnuBreakConnection
itemMnuExit
itemMnuUsers
Powerpoint Templates
37
Создание главного меню
Создайте строку состояния, использую компонент
Задайте имя строке состояния
Powerpoint Templates
38
Создание строки состояния
В строке состояния добавьте метку для вывода в нее текста
Задайте метке имя
Powerpoint Templates
39
Добавление формы в проект
Добавьте еще одну форму
Powerpoint Templates
40
Добавление формы в проект
Powerpoint Templates
41
Добавление формы в проект
Результат
Powerpoint Templates
42
Расположение формы на экране
Определяем расположение формы на экране после запуска
Powerpoint Templates
43
Проектирование графического
интерфейса frmLogin
Спроектируйте следующий графический интерфейс формы и задайте
имена элементов управления
tbLogin
tbPassword
chbSaveCmd
btnCancel
btnSettings
btnConnect
tbServerName
tbDataBaseName
Powerpoint Templates
44
Проектирование графического
интерфейса frmLogin
Для поля с паролем, необходимо указать знак, заменяющий вводимый
символы.
Powerpoint Templates
45
Добавление модуля
Добавьте модуль,
в который разместим главную процедуру для
запуска программы.
Powerpoint Templates
46
Параметры запуска
Изменим настройки запуска:
Powerpoint Templates
47
Параметры запуска
Powerpoint Templates
48
Параметры запуска
Если такой процедуры нет, то внизу появится соответствующее
сообщение об ошибки
Powerpoint Templates
49
Добавление процедуры в модуль
Перейдем в код модуля объявим объект Connection и создадим
процедуру Main()
Объявляются
экземпляры
форм
Показываем
форму логина
Powerpoint Templates
Если после
закрытия формы
логина,
соединение было
установлено, то
показываем
основную форму
50
Обработка исключений
При выполнении программы могут возникать ошибки, которые
обусловлены дефектами кода или которые трудно предусмотреть.
Например, при передачи обращении к БД по сети может неожиданно
оборваться
сетевое
подключение,
такие
ситуации
называются
исключениями.
Для обработки исключений используется Try... Catch... Finally
Powerpoint Templates
51
Вид формы frmLogin
Кнопка «Дополнительно» позволяет раскрыть настройки
Powerpoint Templates
52
Файл settings.xml
Для хранения настроек соединения будем использовать xml-документ.
Его нужно положить в папке с приложением (при запуске из среду Visual
Studio используется папка Debug в папке bin Проекта)
Powerpoint Templates
53
Файл settings.xml
Содержимое файла
Powerpoint Templates
54
Форма frmLogin
Нам понадобится создать две процедуры
1. loadSettings() – считывает настройки
2. saveSettings() – сохраняет настройки
Для хранения содержимого строки подключения будет использоваться
переменная, объявленная на уровне модуля формы.
Powerpoint Templates
55
Форма frmLogin
Видоизменения формы после нажатия кнопки «Дополнительно >>»
(«Скрыть <<») добавьте в код модуля форму процедуру sizeFormChange()
Powerpoint Templates
56
Форма frmLogin
В процедуре используется локальный обработчик ошибок. Проверяется наличие
файла settings.xml в одной директории с приложением, если файла нет то переменная
ServerConnectionSting заполняется внутри программы (далее данные сервера и т.д.
будут запрошены у пользователя через форму), иначе считываются сохраненные
данные. Если имя пользователя ранее было сохранено, то выставляется настройка
сохранять имя пользователя. Если не указано имя сервера, то меняем размер формы,
чтобы было видно секцию для ввода данных о сервере.
Powerpoint Templates
57
XmlDocument
XmlDocument – класс, использовать для загрузки, проверки, изменения,
добавления и размещения XML-кода в документе (файл документа не
обязательно имеет расширение XML), используется как представление
XML-документа в памяти.
В нем реализованы модель DOM уровня 1 и основной DOM уровня 2
(соответствует стандарту XML от W3C) .
SelectSingleNode – метод, который выделяет объект XmlNode (узел
xml).
innerText – свойство, позволяющее задавать или получать текстовое
содержимое элемента.
Powerpoint Templates
58
XmlDocument
Наиболее распространенные типы узлов в XML:
Корневой узел – это узел, который является корнем дерева документа.
Узел элемента – каждый элемент XML является узлом элемента . Это также
единственный тип узла, который может иметь атрибуты.
Узел атрибута – каждый атрибут считается
узлом атрибута . Он содержит информацию об узле
элемента, но фактически не считается дочерним
элементом этого элемента.
Текстовый
узел
–
текст
документа
рассматривается как текстовый узел. Он может
состоять из дополнительной информации или просто
пустого пространства.
Powerpoint Templates
59
XmlDocument
Корневой узел
Например, Sales
- узел элемента, содержит текстовый узел со значением
"Sales".
Примечание: узлов атрибутов в данном примере нет
Powerpoint Templates
60
Форма frmLogin
На
загрузку
формы
tbDataBaseName.Enabled
добавить
установку
для
обеспечения
исходного
значения
работы
кнопки
«Дополнительно»
Вызов процедуры loadSettings() также поставить на загрузку формы.
Powerpoint Templates
61
Форма frmLogin
Процедура saveSettings():
Powerpoint Templates
62
Форма frmLogin
Далее добавляем код для кнопки «Соединить».
Powerpoint Templates
63
Форма frmLogin
Далее добавляем код для кнопку «Отмена».
После этого проверяем работу приложения.
1. Если нет файла settings.xml, то форма должна открыться, как:
Powerpoint Templates
64
Тестирование работы приложения
Заполнить форму данными и нажать «Соединить»
Powerpoint Templates
65
Тестирование работы приложения
После этого должен появиться в папке с приложениям файл settings.xml
и открыться главное окно
Powerpoint Templates
66
Тестирование работы приложения
Закройте окно.
После этого проверяем работу приложения в ситуации.
2. Если файла settings.xml есть, то форма должна открыться, как:
После
нажатия
приложения
«Соединить»
должно
Powerpoint Templates
открыться
главное
окно
67
Форма frmMain
Теперь добавим программный код для пунктов меню главного окна
«Установить», «Разорвать», «Выход».
Добавим в модуль формы frmMain процедуру chk_ConnectionServer(),
которая
проверяем
статус
соединения
с
сервером
и
выводит
соответствующей текст в строку состояния
Powerpoint Templates
68
Форма frmMain
Далее для добавим код для пункта меню «Разорвать»,
пункта меню «Установить»,
пункта меню «Выход»,
а также вызов процедуры chk_ConnectionServer() на загрузку формы
Powerpoint Templates
69
Тестирование работы приложения
После этого проверяем работу приложения.
После открытия главного окна. Меню и строка состояния должны иметь
вид
Powerpoint Templates
70
Тестирование работы приложения
После нажатия на пункт меню «Разорвать»
Powerpoint Templates
71
Тестирование работы приложения
После выбора пункта меню «Установить»
Если нажата кнопка «Отмена», диалоговое окно закрывается и
статус не меняется, если нажата «Соединить», в случае успеха,
диалоговое окно закрывается, в строке состояния надпись меняется,
меняется состояние пунктов меню. Далее проверить пункт «Выход».
Powerpoint Templates
72
Форма frmUsers
Далее добавим форму для работы с данными таблицы «Users».
Внешний вид формы
Powerpoint Templates
73
Пароли и БД
Содержимое таблицы в БД (пример, получен при внесении
записей из приложения).
Обратите внимание, что в форме не отображается содержимое
полей «Password» и «isDeleteUser».
По логике приложения, когда системный технолог удаляет
пользователя, меняется значение поля isDeleteUser, и запись о
пользователе больше не отображает в форме.
Powerpoint Templates
74
Пароли и БД
Поле «Password» используется для хранения зашифрованного пароля
(хеша пароля).
В БД никогда не хранятся сами пароли!!!!!
Шифрование пароля может осуществляться средствами клиентского
приложения, или средствами самого языка Transact-SQL, Например:
HASHBYTES ( '', { @input | 'input' } )
::= MD2 | MD4 | MD5 | SHA | SHA1 | SHA2_256 | SHA2_512]
Подробнее: https://docs.microsoft.com/ru-ru/sql/t-sql/functions/hashbytes-transact-sql?view=sql-server-ver15
Powerpoint Templates
75
Форма frmUsers
Задайте заголовок формы - «Справочник "Пользователи "».
Добавьте на форму две панели, укажите их позиционирование
1
2
Powerpoint Templates
76
Форма frmUsers
Свойство Dock позволяет прикрепить элемент к определенной
стороне контейнера. По умолчанию оно имеет значение None, но
также позволяет задать еще пять значений:
Top: элемент прижимается к верхней границе контейнера
Bottom:
элемент
прижимается
к
нижней границе контейнера
Left: элемент прижимается к левой
стороне контейнера
Right: элемент прикрепляется к правой
стороне контейнера
Fill:
элемент
заполняет
пространство контейнера
Powerpoint Templates
все
77
Форма frmUsers
На нижнюю панель добавить две кнопки, задать их
имена и настроить позиционирование.
btnClose
btnSave
Powerpoint Templates
78
Форма frmUsers
Свойство Anchor определяет расстояние между одной
из сторон элемента и стороной контейнера. И если при
работе с контейнером мы будем его растягивать, то
вместе с ним будет растягиваться и вложенный элемент.
По умолчанию у каждого добавляемого элемента это
свойство равно Top, Left
Powerpoint Templates
79
Форма frmUsers
Добавить панель инструментов.
На панели инструментов добавить три кнопки и задать
им имена, иконки (свойство Image) и всплывающие
подсказки.
tboxAdd
tboxEdit
tboxDelele
Powerpoint Templates
80
Форма frmUsers
Добавить рамку
и указать ее позиционирование.
Powerpoint Templates
81
Форма frmUsers
Добавить элемент управления DataGridView. Задать
ему имя,
dgvUsers
указать
его
позиционирование,
а
также
запрет
добавлять и удалять строки в самом DataGridView.
Powerpoint Templates
82
Форма frmMain
Добавим код к пункту меню «Пользователи» главной формы.
Форма будет открываться как дочерняя по отношению к главному окну.
Powerpoint Templates
83
Форма frmUsers
Данные в нашем элементе управления DataGridView
можно
редактировать.
При
этом
необходимо
запрограммировать
поведение,
так
чтобы
при
некорректном вводе появлялись сообщения об ошибках,
а
кнопка
«Сохранить
изменения»
становилась
недоступной для пользователя.
Powerpoint Templates
84
Форма frmUsers
Объявим на уровне модуля формы frmUsers счетчик
ошибок
пользователя
при
редактировании
ячеек
элемента управления DataGridView, адаптер данных и
таблицу.
Powerpoint Templates
85
Форма frmUsers
Далее создадим процедуру SetAdapter(), которая задает
настройки адаптера данных.
Для адаптера задаются команды SelectCommand и
UpdateCommand. Добавлять и удалять данные через этот
адаптер мы не будем.
Powerpoint Templates
86
Форма frmUsers
Далее создадим процедуру refresh_dgvUsers(), которая
устанавливает
настройки
элемента
управления
DataGridView (очищает от старых данных, заполняет
данными, устанавливает надписи на колонках.
Запрещаем редактировать колонку «Код»
Powerpoint Templates
87
Форма frmUsers
Добавляем на загрузку формы frmUsers код,
который проверяет, что статус соединение с БД, если
соединение открыто, устанавливает начальное значение
переменной-счетчика countErrorsGrid, и вызывает
процедуры SetAdapter() и refresh_dgvUsers()
Powerpoint Templates
88
Форма frmUsers
Добавляем
код
процедуры
CellEndEdit,
обрабатывающей событие элемента управления dgvUsers
(тип элемента управления DataGridView).
Возникает
при
остановке
режима
правки
для
выбранной ячейки.
Будем
считать,
что
единственным
налагаемым
ограничением является запрет на пустые значения
колонок 1, 2, 3 (нумерация с 0).
Powerpoint Templates
89
Форма frmUsers
Powerpoint Templates
90
Форма frmUsers
Добавляем
код
на
нажатие
кнопки
«Сохранить
изменение»:
На нажатие кнопки «Закрыть».
Powerpoint Templates
91
Тестирование работы приложения
Изменить данные в форме и сохранить изменения, убедится, что
изменения сохранились в БД.
Удалить данные в ячейке и убедиться, что на ячейке появляется
сообщение об ошибке, а кнопка «Сохранить изменения» становится
неактивной.
Внести корректные данные, убедится, что на ячейке исчезает
сообщение об ошибке, а кнопка «Сохранить изменения»
становится
доступной, если нет ошибок.
Powerpoint Templates
92
Форма frmUsers
Добавляем обработчик нажатия на кнопку «удалить»
панели инструментов:
Powerpoint Templates
93
Тестирование работы приложения
Убедитесь, что добавленный функционал работает
Powerpoint Templates
94
Тестирование работы приложения
После нажатия нет, ничего не происходит.
После нажатия да, получаем:
Powerpoint Templates
95
Форма frmUserData
Далее нужно спроектировать форму frmUserData, которая
будет использоваться для добавления и редактирования
записей.
tbSurname
tbName
tbРatronymic
tbLoginAppUser
tbPasswordAppUser
btnSetPassword
btnOk
Powerpoint
Templates
btnCancel
96
Форма frmUserData
Для поля с паролем, необходимо указать знак, заменяющий вводимый
символы, а также задать свойство Text (любые символы), чтобы при
открытии формы на редактирование записи пользователь приложения
видел, что пароль задан.
Powerpoint Templates
97
Форма frmUserData
В модуле формы объявите три переменные
SaveFormValue – переменная-флаг, показывающий, на
какую кнопку пользователь (закрыть, btnCancel, или
btnOk).
UserId – переменная, в которую передается код
пользователя, данные которого редактируются через
форму.
isUpdatePass – переменная-флаг, показывающий
изменялся ли пароль при редактировании данных формы.
Powerpoint Templates
98
Форма frmUserData
Далее добавим функцию, которая будет шифровать
пароль пользователя.
Для этого сначала подключим библиотеку
System.Security.Cryptography
Powerpoint Templates
99
Форма frmUserData
Далее добавим код функции
Поскольку пользователи могут вводить слишком простые пароли, принято к
паролям добавлять криптографическую соль. Соль — строка данных, которая
передаётся хеш-функции вместе с входным массивом данных для вычисления хэша.
Внимание! Данный код написан исключительно для того, чтобы показать, что
пароли шифруют, при разработке реальных приложений требуется изучить тему
безопасности паролей дополнительно и основательно!!!!!
Powerpoint Templates
100
Форма frmUserData
Далее
добавим
код
процедуры,
управляющей
доступностью кнопки btnOk.
На загрузку формы:
Для кнопки «Отмена»
Powerpoint Templates
101
Форма frmUserData
На изменение содержимого текстовых полей:
На закрытие формы:
Powerpoint Templates
102
Форма frmUserData
Далее добавим код процедуры редактирования
Powerpoint Templates
103
Форма frmUserData
В
процедуре
рассматривается
два
случая,
когда
пароль
редактировался и когда пароль не редактировался.
Если пароль не редактировался, то это поле не участвует в запросе
на обновление данных.
Для ввода пароля создадим еще одну форму frmSetPassword.
Вводимые символы в поля должны отображаться как «*»
tbPassword1
tbPassword2
btnCancel
btnSave
Powerpoint Templates
104
Форма frmSetPassword
В модуле формы объявите перменную
SavePass – переменная-флаг, показывающий, на какую
кнопку пользователь (закрыть, btnCancel, или btnSave).
Powerpoint Templates
105
Форма frmSetPassword
В модуле формы объявите переменную SavePass
SavePass – переменная-флаг, показывающий, на какую
кнопку пользователь (закрыть, btnCancel, или btnSave).
Изначальное
значение
переменной
устанавливается в момент загрузки формы
Powerpoint Templates
SavePass
106
Форма frmSetPassword
Для кнопки «Установить» используется следующий
программный код:
Для кнопки «Отмена» следующий:
Powerpoint Templates
107
Форма frmSetPassword
Организация обмена данными между формами будет
осуществлена путем процедуры:
В процедуру по ссылке (ByRef) передается поле «Пароль» из
экземпляра формы frmUserData, породившей экземпляр формы
frmSetPassword. На экран показывается экземпляр формы
frmSetPassword (как диалоговое окно). После закрытия экземпляра
формы rmSetPassword, если закрытие было инициировано кнопкой
«Установить», в свойство Text поля экземпляра формы frmUserData
передается
значение
свойства
Text
экземпляра
формы
frmSetPassword.
Powerpoint Templates
108
Форма frmUserData
Добавляем код процедуры, обрабатывающей нажатие
кнопки btnSetPassword формы frmUserData.
Powerpoint Templates
109
Форма frmUsers
Далее добавляем код процедуры, обрабатывающей
нажатие кнопки «редактировать» панели инструментов
формы frmUsers
Powerpoint Templates
110
Форма frmUsers
Оператор AddHandler
Связывает событие с обработчиком событий во время
выполнения.
Синтаксис
AddHandler event, AddressOf eventhandler
event – это имя обрабатываемого события.
eventhandler –
имя
процедуры,
которая
обрабатывает событие.
Powerpoint Templates
111
Тестирование работы приложения
Проверьте работоспособность функции редактирования записей.
Powerpoint Templates
112
Форма frmUserData
Далее для формы frmUserData добавим процедуру,
которая позволит создавать новые записи в БД.
Powerpoint Templates
113
Форма frmUsers
Добавим код процедуры, обрабатывающей нажатие
кнопки
«добавить»
панели
инструментов
формы
frmUsers
Powerpoint Templates
114
Тестирование работы приложения
Проверьте работоспособность функции добавления записей.
Powerpoint Templates
115
Тестирование работы приложения
Проверьте работоспособность функции добавления записей.
Powerpoint Templates
116
Выбор списка значение из БД при
помощи Combobox
Допустим в нашей БД имеется 2 таблицы.
Поле RoleID таблице Users является внешним ключом
Powerpoint Templates
и ссылается на поле
RoleID таблице UserRoles
117
Выбор списка значение из БД при
помощи Combobox
Модифицируем форму добавления / редактирования
данных о пользователях
cbxRole
Powerpoint Templates
118
Выбор списка значение из БД при
помощи Combobox
Внесем изменения в код, запроса адаптера данных для
команды SelectCommand
Powerpoint Templates
119
Выбор списка значение из БД при
помощи Combobox
Внесем изменения в код процедуры refresh_dgvUsers().
Колонку с кодом, появившуюся в tblDataUser, которая
формируется запросом и отображается в элементе
dgvUsers скрываем от конечного пользователя нашего
приложения.
Powerpoint Templates
120
Выбор списка значение из БД при
помощи Combobox
Внесем изменения в код процедуры refresh_dgvUsers().
Колонку с кодом, появившуюся в tblDataUser, которая
формируется запросом и отображается в элементе
dgvUsers скрываем от конечного пользователя нашего
приложения.
Powerpoint Templates
121
Выбор списка значение из БД при
помощи Combobox
Внесем изменения в код процедуры tboxEdit_Click, которая
вызывается при нажатии кнопки «Редактировать» на панели
инструментов формы справочника «Пользователи».
Powerpoint Templates
122
Выбор списка значение из БД при
помощи Combobox
Cвойству Tag может быть назначен любой тип, производный от
класса Object.
Если свойство Tag задано с помощью конструктора Windows
Forms, может быть назначен только текст.
Обычно свойство Tag используется для хранения данных, тесно
связанных с элементом управления.
В нашем примере будем использовать свойство Tag для передачи
в Combobox кода роли пользователя из элемент управления
DataGridView.
Powerpoint Templates
123
Выбор списка значение из БД при
помощи Combobox
Далее добавим в код модуля формы frmUserData объявление
адаптера данных и таблицы для списка пользователей.
Powerpoint Templates
124
Выбор списка значение из БД при
помощи Combobox
Далее добавим в код модуля формы frmUserData процедуру
FillRoleList(), которая будет заполнять наш раскрывающийся список
и устанавливать в нем значение, соответствующее данным о
пользователе.
Powerpoint Templates
125
Выбор списка значение из БД при
помощи Combobox
Добавим вызов процедуры FillRoleList() на загрузку формы
Изменим процедуру ActivateBatOK()
Далее обработку событий изменения значения в раскрывающемся
списке
Powerpoint Templates
126
Выбор списка значение из БД при
помощи Combobox
Изменим процедуру edit.
Powerpoint Templates
127
Выбор списка значение из БД при
помощи Combobox
Изменим процедуру add и проверим работу приложения.
Powerpoint Templates
128
Спасибо за внимание!
Powerpoint Templates