ументів DataRow r - рядок даних і Type objectType - тип об'єкта, що повертається. Після виклику цього методу, за допомогою System.Reflection здійснюється пошук конструктора в членах класу типу objectType. Потім створюється об'єкт цього класу і заповнюються публічні властивості створеного екземпляра даними, що містяться у вихідній рядку r. Після чого метод повертає одержаний примірник.
Приклад використання методу для отримання об'єкта User на підставі введених логіна і пароля представлений нижче (Лістинг 3):
public static Storage_Coursework.Objects.User GetUser (string uName, string uPassword)
{
string query=String.Format ( SELECT * FROM [User] WHERE UserName= {0} AND UserPassword= {1} raquo ;, uName, uPassword) ; ds=OleDB.ExecuteQuery (query); (OleDB.DsIsNullOrEmpty (ds)) null; (Storage_Coursework.Objects.User) ObjectProvider.GetObject (ds.Tables [0] .Rows [0], typeof (Storage_Coursework.Objects.User ));
}
Де ds - DataSet (набір даних), отриманий в результаті запиту. У його складі єдина таблиця з єдиною рядком даних (користувач має унікальні логін і пароль).
SqlDB - статичний клас виконує запит до БД. Якщо буде потрібно використання іншого постачальника даних, то необхідно буде лише замінити цей клас іншим з такими ж методами Execute Query (string query) і Ds Is Null Or Empty (DataSet ds), а також змінити рядок підключення в конструкторі класу.
4. База даних
База даних для програми розроблялася з урахуванням подальшого її розширення. Додавання таблиць у БД повинно супроводжуватися додаванням класів з відповідним ім'ям у структуру класів додатки, в просторі імен Storage_Coursework.Objects.
. 1 Засоби проектування
База даних спроектована в середовищі MS Sql Express 2012. Для роботи програми на комп'ютері користувача повинні бути запущені служби SQL Server.
Перенесення структури БД на іншу платформу не складе труднощів, проте для зручності демонстрації роботи програми було вирішено використовувати локальну БД.
. 2 Перспективи розширення БД
У рамках дипломного проекту схема бази даних буде розширена поруч таблиць, що дозволить додатком отримати нові функції:
· Облік персоналу, що виробляє операції в системі;
· Облік повернутого матеріалу з об'єкта на склад;
· Відстеження термінів зберігання матеріалів;
· Формування середньої вартості всіх матеріалів на складі;
· Можливість формування списку очікуваних матеріалів;
· Створення виконробом замовлення на вивезення матеріалу.
4.3 Схема бази даних
База даних складається з шести таблиць:
· User;
· UserRole;
· Role;
· RoleAccess;
· Storage;
· Material
Схема представлена ??на малюнку 1.
Малюнок 6
П?? льзовательскій інтерфейс розроблений з розрахунком на невисоку комп'ютерну підготовку персоналу, який матиме до нього доступ. При запуску програми користувач повинен буде авторизуватися, ввівши дані свого облікового запису у вікні авторизації. У разі введення невірних даних, робота додатка буде завершено.
4.4 Доступність елементів управління
Інтерфейс програми буде мати різний вигляд залежно від прав поточного користувача. А точніше, залежно від набору дозволів, прив'язаних до ролі цього користувача. Наприклад, працівник складу може здійснювати будь-які операції, що стосуються маніпуляцій з будівельним матеріалом на складі, але не повинен мати доступу до інтерфейсу адміністратора системи. Прораб має право знати яка кількість того чи іншого матеріалу знаходиться на складі, але не може самостійно виробляти прибутково-видаткових операцій. На підставі дозволів (прав), що відносяться до ролі поточного користувача, змінюється видимість елементів управління на етапі завантаження форми.
Код програми
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Threading.Tasks;System.Windows.Forms;
namespace Storage_Coursework
{partial class FormLogon: Form
{
public FormLogon ()
{...