Главная страница

МДК 04.01 «Обеспечение проектной деятельности» отчет. Министерство образования и науки Республики Татарстан. Отчет мдк 04. 01 Обеспечение проектной деятельности


Скачать 0.78 Mb.
НазваниеОтчет мдк 04. 01 Обеспечение проектной деятельности
АнкорМДК 04.01 «Обеспечение проектной деятельности» отчет
Дата08.12.2021
Размер0.78 Mb.
Формат файлаdocx
Имя файлаМинистерство образования и науки Республики Татарстан.docx
ТипОтчет
#297198

Министерство образования и науки Республики Татарстан

ГАПОУ «»

ОТЧЕТ
МДК 04.01 «Обеспечение проектной деятельности»

студента 537 группы

специальности 09.02.05 Прикладная информатика

Оценка _____(________)

Руководитель: __________________()

«____»________20 г.

Студент

Бугульма,2017

Содержание


Введение 3

1 Процесс создания программы 4

2 Реализация программы 5

Заключение 9

Список использованных источников 10

Приложение А 11


Введение


Современная экономика немыслима без информации. Тысячи предприятий, миллионы налогоплательщиков, триллионы рублей, биржевые котировки, реестры акционеров — все эти информационные потоки необходимо оценить, обработать, сделать необходимые выводы, принять правильное решение. Для того, чтобы специалист-экономист мог принимать обоснованные решения, наряду с традиционными знаниями, такими как основы менеджмента, основы внешнеэкономической деятельности, банковское дело, административное управление, налогообложение, статистика он должен владеть и информационными системами.

Актуальность темы: У каждой швеи есть своя клиентская база, с их наименованиями и ценами. Но в XXI веке, в эру информационных технологий, везти клиентскую базу по старинке, записывая всё в тетрадь не удобно, ведь в тетрадке можно запутаться с заказами.

Объект: швейное дело, направленное на облегчение поиска и приёма заказов.

Цель проекта: создать автоматизированную информационную систему для швеи.

Задачи проекта:

  1. Ознакомится с фирмой швеи, её заказами и клиентами.

  2. Разработать структуру базы данных.

  3. Реализовать регистрацию клиентов.

  4. Просмотр клиентом видов услуг.

  5. Быстрый поиск.

  6. Фильтрация.

  7. Реализовать приложение в Visual Studio на языке программирования C#

1 Процесс создания программы


Для пользователя самое главное в конечном продукте, лёгкость и понятность интерфейса, и в этой программе уделялось не малое значение интерфейсу. И в ходе проектной работы интерфейс программы вполне подходит для среднестатистического пользователя.

Для того, чтобы нам приступить к разработке программы, нужно запустить приложение Visual Studio 2017.

Следующим пунктом, нам необходимо создать новый проект приложения Windows Forms C#.

Для этого, нажимаем, файл – создать новый проект, в установочных шаблонах выбираем C# и выбираем Windows Forms.



Рисунок 1 – «Главное окно для создания проекта»

Для того что бы форма приобрела корректный вид, на неё нужно добавить кнопки и прочие функциональные вещи. Всё это делается, переходом на вкладку панель элементов:



Рисунок 2 – «Панель элементов»

После этих действий можно начать добавлять различные функциональные элементы в форму.

2 Реализация программы


Для начала создаём окно для ввода логина и пароля. В этом окне размещаем 2 поля «label» для ввода логина и пароля, а также 3 кнопки «button» и переименовываем их в «Вход», «Регистрация», «Закрыть». Для того, чтобы они работали пишем для них код (см. Приложение А).



Рисунок 3 – «Главное окно входа в программу»

Когда пользователь нажимает на кнопку «Регистрация» (см. рисунок 3), открывается окно для регистрации. Здесь пользователь вводит свои персональные данные и они автоматически сохраняются в базу данных этой программы. Если не все данные заполнены, вылезает окно с предупреждением «Заполните все поля». Когда все поля заполнены, нажимаем на кнопку «Зарегистрироваться» (см. Приложение А).



Рисунок 4. «Регистрация»

Нажимая на кнопку «Закрыть» (см. рисунок 3), система спрашивает нас, действительно вы хотите выйти или можно остаться. Если нажать «нет», то пользователь остаётся в этой программе и продолжает работать. Если нажать «да», то программа закрывается (см. Приложение А).



Рисунок 5. «Закрытие программы»

Для входа программу созданы два типа пользователей: администратор (швея) и обычный пользователь (клиент). Войдём в программу под правами администратора (см. Приложение А).



Рисунок 6 – «Вход с правами администратора»

Окно программы для администратора имеет две вкладки: «Клиент» и «Заказы». Во вкладке «Клиент» отображаются все зарегистрированные клиенты, и клиенты которые добавлены швеёй. Во вкладке «Заказы» отображаются все заказы клиентов, а также администратор может отмечать тех клиентов, которым заказ уже сделан. Для облегчения поиска нужных клиентов и заказов, во вкладках реализована фильтрация (см. Приложение А).



Рисунок 7. «Клиент и заказы»

Войдём в программу как обычный пользователь (см. Приложение А)



Рисунок 8 «Вход в программу с правами клиента»


Окно клиента, как и окно администратора, имеет две вкладки: «Прайс-лист» и «Заказы». Во вкладке «Прайс-лист», клиент может увидеть вид деятельности, за который берётся швея и их цену. Во вкладке «Заказы», клиент может видеть свой заказ, если он помечен галочкой, то он готов (см. Приложение А).



Рисунок 9 «Окно для клиента»

Заключение


В результате выполнения задания проектной работы был разработан программный продукт АИС «Пошив и ремонт одежды». Для разработки использовались программа создания БД Access и средства визуального объектно-ориентированного программирования Visual Studio 2017.

Также в ходе проектной работы были решены следующие задачи:

Разработанную автоматизированную информационную систему легко дополнить, при необходимости разработки профессиональной автоматизированной информационной системы. В перспективе база данных будет увеличиваться с приходом новых клиентов с их заказами. Данная АИС существенно облегчит хранения списка клиентов швеи, а клиентам даст возможность просматривать услуги, которые предоставляет швея.

Список использованных источников


  1. Агуров П. C#. Разработка компонентов в MS Visual Studio 2010/2013. - СПб.: Питер, 2013. - 480с.

  2. Агальцов В.П.   Базы данных: учебное пособие для СПО. - М: Мир, 2012.- 376 с.Джон Шарп " Microsoft Visual C#" Питер, 2017, 8-е изд., 848 стр.

  3. Павловская Т.А. C#. Программирование на языке высокого уровня. Учебник для вузов. - СПб.: Питер, 2014. - 432с.

  4. Дунаев В.В. Базы данных. Язык SQL для студента: 2-е изд. доп. и перераб. - Спб.: БХВ-Петербург, 2013.

  5. Иванова Г. С. Технология программирования: учеб. для вузов. - 2-е изд., стер. - М.: Изд-во МГТУ им. Н. Э. Баумана, 2013.

  6. Шилдт, Г.. С# 4.0: полное руководство. Пер. с англ. / Герберт Шилдт. - М.: ООО "И.Д. Вильяме", 2011. - 1056 с.

  7. Грабер М. Введение в SQL: Пер. с англ. - М.: “ЛОРИ”, 2012.- 341с., ил. 

  8. Основы автоматизированных информационных систем. Обеспечение автоматизированных информационных систем: учеб. пособ. для вузов / разраб. В.Н.Кузубовым. - М: Совр. Гум. Ун-т, 2011.

  9. http://www.cyberforum.ru/


Приложение А


Класс EntityManager.

public static class EntityManager

static пошив_и_ремонт_одеждыDataSet пошивИРемонтОдеждыDataSet = new пошив_и_ремонт_одеждыDataSet();

private static ЗаказыTableAdapter заказыTableAdapter = new ЗаказыTableAdapter();

private static ПользователиTableAdapter пользователиTableAdapter = new ПользователиTableAdapter();

private static Цены_работTableAdapter ценыРаботTableAdapter = new Цены_работTableAdapter();

static EntityManager()

// Костыль заменяет оригинальную команду обновления строк во избежание ошибки "Нарушение параллелизма"

var заказыUpdateCommand = заказыTableAdapter.Adapter.UpdateCommand;

заказыUpdateCommand.CommandText = "UPDATE `Заказы` SET `Номер клиента` = ?, `заказ готов` = ?, `Вид работы` = ?," +

" `Тип одежды` = ?, `Цена` = ? WHERE (`Идентификатор` = ?)";

var parameters = заказыUpdateCommand.Parameters;

while (parameters.Count > 6)

заказыTableAdapter.Adapter.UpdateCommand.Parameters.RemoveAt(6);

public static ПользователиDataTable UserDataTable

get

return пошивИРемонтОдеждыDataSet.Пользователи;

public static ЗаказыDataTable OrderDataTable

get

return пошивИРемонтОдеждыDataSet.Заказы;

public static Цены_работDataTable WorkPrices

get

return пошивИРемонтОдеждыDataSet.Цены_работ;

public static void UpdateUsers()

пользователиTableAdapter.Adapter.Update(UserDataTable);

public static void UpdateOrders()

заказыTableAdapter.Adapter.Update(OrderDataTable);

OrderDataTable.AcceptChanges();

public static void UpdateWorkPrices()

ценыРаботTableAdapter.Adapter.Update(WorkPrices);

///

/// Возвращает отфильтрованную таблицу заказов по условию


///


///

///

public static ЗаказыDataTable FilterOrders(string condition = null)

var whereCondition = string.Empty;

if (!string.IsNullOrEmpty(condition))

whereCondition = $"WHERE {condition}";

var filterOrderCommand = new OleDbCommand()

Connection = заказыTableAdapter.Connection,

CommandText = "SELECT Идентификатор, [Номер клиента], [вид работы], [тип одежды], [заказ готов] " +

$"FROM Заказы {whereCondition}",

CommandType = global::System.Data.CommandType.Text;

FillFilteredTable(заказыTableAdapter.Adapter, filterOrderCommand, OrderDataTable);

return OrderDataTable;

///

/// Возвращает отфильтрованную таблицу пользователей по условию


///


///

///

public static ПользователиDataTable FilterUsers(string condition = null)

var whereCondition = string.Empty;

if (!string.IsNullOrEmpty(condition))

whereCondition = $"WHERE {condition}";

var filterUserCommand = new OleDbCommand()

Connection = пользователиTableAdapter.Connection,

CommandText = "SELECT Идентификатор, Фамилия, Имя, Отчество, [номер телефона], логин, пароль, " +

$"[E-mail], [Является администратором] FROM Пользователи {whereCondition}",

CommandType = global::System.Data.CommandType.Text;

FillFilteredTable(пользователиTableAdapter.Adapter, filterUserCommand, UserDataTable);

return UserDataTable;

///

/// Возвращает отфильтрованную таблицу цен работ по условию


///


///

///

public static Цены_работDataTable FilterWorkPrices(string condition = null)

var whereCondition = string.Empty;

if (!string.IsNullOrEmpty(condition))

whereCondition = $"WHERE {condition}";

var filterUserCommand = new OleDbCommand()

Connection = ценыРаботTableAdapter.Connection,

CommandText = "SELECT Идентификатор, [Вид работы], [Тип одежды], Цена" +

$" FROM [Цены работ] {whereCondition}",

CommandType = global::System.Data.CommandType.Text;

FillFilteredTable(ценыРаботTableAdapter.Adapter, filterUserCommand, WorkPrices);

return WorkPrices;

///

/// Создает строку для фильтрации: всевозможные комбинации по сравнению предоставленных полей с текстом поиска

///


///

///

///

public static string GetFilterStringByFields(string[] fields, string searchText)

var findValues = string.IsNullOrEmpty(searchText)

? new string[] { }

: searchText.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

var filterStrings = new List();

foreach (var findingField in fields)

foreach (var findingValue in findValues)

filterStrings.Add($"{findingField} LIKE '%{findingValue}%'");

return string.Join(" OR ", filterStrings);

///

/// Объединяет условия фильтрации заданным логическим оператором

///


///

///

///

///

public static string UnionFilter(string leftPart, string rightPart, string @operator = "AND")

if (string.IsNullOrEmpty(leftPart))

return rightPart;

if (string.IsNullOrEmpty(rightPart))

return leftPart;

return $"({leftPart}) {@operator} ({rightPart})";

///

/// Заполняет таблицу по фильтрующей команде выбора строк

///


///

///

///

private static void FillFilteredTable(OleDbDataAdapter adapter, OleDbCommand selectCommand, DataTable table)

var oldSelectComand = adapter.SelectCommand;

adapter.SelectCommand = selectCommand;

table.Clear();

adapter.Fill(table);

adapter.SelectCommand = oldSelectComand;

Начальное окно регистрации

private void buttonRegistration_Click(object sender, EventArgs e)

Регистрация открыть = new Регистрация();

открыть.ShowDialog();

private void buttonCancel_Click(object sender, EventArgs e)

if (MessageBox.Show("Вы действительно хотите закрыть программу?", "Закрытие программы", MessageBoxButtons.YesNo, MessageBoxIcon.Stop) == DialogResult.Yes)

Close();

private void buttonEntry_Click(object sender, EventArgs e)

var loginCondition = $"логин = '{textBoxLogin.Text}' AND пароль = '{textBoxPassword.Text}' ";

var user = EntityManager.FilterUsers(loginCondition).FirstOrDefault();

if (user != null)

MessageBox.Show($"Привет, {user.Имя}!");

if (user.Является_администратором)

Вход_в_программу формаАдминистратора = new Вход_в_программу();

формаАдминистратора.Show();

else

Вход_в_программу_Клиент формаКлиента = new Вход_в_программу_Клиент(user.Идентификатор);

формаКлиента.Show();

else

MessageBox.Show("Пользователь не найден");

private void textBoxLogin_KeyDown(object sender, KeyEventArgs e)

if (e.KeyCode == Keys.Enter)

if (textBoxPassword.Text == "")

textBoxPassword.Focus();

else

buttonEntry.PerformClick();

Вход в программу «Клиент»

private readonly string ordersFilter;

private string textBoxOrdersFilter;

private string readyOrNotReadyOrdersFilter;
public Вход_в_программу_Клиент(Int64 userId)

this.ordersFilter = $"([Номер клиента] = {userId})";

InitializeComponent();

private void Вход_в_программу_Клиент_Load(object sender, EventArgs e)

this.заказыДляКлиентаBindingSource.Filter = this.textBoxOrdersFilter = ordersFilter;

this.заказы_для_клиентаTableAdapter.Fill(this.пошив_и_ремонт_одеждыDataSet.Заказы_для_клиента); this.цены_работ_для_клиентаTableAdapter.Fill(this.пошив_и_ремонт_одеждыDataSet.Цены_работ_для_клиента);

private void orderFilterTextBox_TextChanged(object sender, EventArgs e)

var findFields = new[] { "[Вид работы]", "[Тип одежды]" };

var filterString =

EntityManager.GetFilterStringByFields(findFields, this.orderFilterTextBox.Text).Trim();

this.textBoxOrdersFilter = ordersFilter;

if (!string.IsNullOrEmpty(filterString))

this.textBoxOrdersFilter += $" AND ({filterString})";

this.заказыДляКлиентаBindingSource.Filter = EntityManager.UnionFilter(

this.textBoxOrdersFilter,

this.readyOrNotReadyOrdersFilter);

private void priceListFilterTextBox_TextChanged(object sender, EventArgs e)

var findFields = new[] { "[Вид работы]", "[Тип одежды]" };

var filterString =

EntityManager.GetFilterStringByFields(findFields, this.priceListFilterTextBox.Text).Trim();

this.ценыРаботДляКлиентаBindingSource.Filter = filterString;

private void clientOrdersFilterCheckBox_CheckStateChanged(object sender, EventArgs e)

switch (this.clientOrdersFilterCheckBox.CheckState)

case CheckState.Checked:

this.readyOrNotReadyOrdersFilter = "[Заказ готов] = TRUE";

this.clientOrdersFilterCheckBox.Text = "Отображаются готовые заказы";

break;

case CheckState.Indeterminate:

this.readyOrNotReadyOrdersFilter = string.Empty;

this.clientOrdersFilterCheckBox.Text = "Отображаются все заказы";

break;

case CheckState.Unchecked:

this.readyOrNotReadyOrdersFilter = "[Заказ готов] = FALSE";

this.clientOrdersFilterCheckBox.Text = "Отображаются неготовые заказы";

break;

this.заказыДляКлиентаBindingSource.Filter = EntityManager.UnionFilter(

this.textBoxOrdersFilter,

this.readyOrNotReadyOrdersFilter);

private void updateOrdersButton_Click(object sender, EventArgs e)

this.заказы_для_клиентаTableAdapter.Fill(this.пошив_и_ремонт_одеждыDataSet.Заказы_для_клиента);

Вход в программу «Администратор»

const string FilterNonAdministrators = "([Является администратором] = FALSE)";

private string textBoxOrdersFilter;

private string readyOrNotReadyOrdersFilter;

private void Вход_в_программу_Load(object sender, EventArgs e)

// TODO: данная строка кода позволяет загрузить данные в таблицу "пошив_и_ремонт_одеждыDataSet.Тип_одежды". При необходимости она может быть перемещена или удалена.

this.тип_одеждыTableAdapter.Fill(this.пошив_и_ремонт_одеждыDataSet.Тип_одежды);

// TODO: данная строка кода позволяет загрузить данные в таблицу "пошив_и_ремонт_одеждыDataSet.Вид_работ". При необходимости она может быть перемещена или удалена.

this.вид_работTableAdapter.Fill(this.пошив_и_ремонт_одеждыDataSet.Вид_работ);

this.заказы_с_клиентамиTableAdapter.Fill(this.пошив_и_ремонт_одеждыDataSet.Заказы_с_клиентами);

this.пользователиBindingSource.Filter = FilterNonAdministrators;

this.пользователиTableAdapter.Fill(this.пошив_и_ремонт_одеждыDataSet.Пользователи);

///

/// Фильтрация пользователей

///


///

///

private void clientFilterTextBox_TextChanged(object sender, EventArgs e)

var findFields = new[] { "[номер телефона]", "Фамилия", "Имя", "Отчество" };

var filterString = EntityManager.GetFilterStringByFields(findFields, clientFilterTextBox.Text).Trim();

this.пользователиBindingSource.Filter = FilterNonAdministrators;

if (!string.IsNullOrEmpty(filterString))

this.пользователиBindingSource.Filter += $" AND ({filterString})";

///

/// Добавление пользователя

///


///

///

private void button2_Click(object sender, EventArgs e)

(new ДобавлениеКлиента()).ShowDialog();

this.пользователиTableAdapter.Fill(this.пошив_и_ремонт_одеждыDataSet.Пользователи);

///

/// Фильтрует заказы по строке поиска, учитывая фильтрацию по готовности

///


///

///

private void orderFilterTextBox_TextChanged(object sender, EventArgs e)

var findFields = new[] { "ФИО", "[вид работы]", "[тип одежды]" };

this.textBoxOrdersFilter =

EntityManager.GetFilterStringByFields(findFields, orderFilterTextBox.Text).Trim();

this.заказыСКлиентамиBindingSource.Filter =EntityManager.UnionFilter(

this.textBoxOrdersFilter,

this.readyOrNotReadyOrdersFilter);

///

/// Добавление заказов

///


///

///

private void addOrderButton_Click(object sender, EventArgs e)

(new Добавление_заказа()).ShowDialog(); this.заказы_с_клиентамиTableAdapter.Fill(this.пошив_и_ремонт_одеждыDataSet.Заказы_с_клиентами);

///

/// Обновляет информацию в бд об отредактированном заказе

///


///

///

private void dataGridViewReadyOrders_CellEndEdit(object sender, DataGridViewCellEventArgs e)

var changedRow = (Заказы_с_клиентамиRow)((DataRowView)((DataGridView)sender).CurrentRow.DataBoundItem).Row;

var orderTable = EntityManager.FilterOrders($"Идентификатор = {changedRow.Номер_заказа}");

orderTable[0].заказ_готов = changedRow.Заказ_готов;

orderTable[0].Цена = changedRow.Цена;

// TODO Сделать возможность редактирования вида работы и типа одежды

// orderTable[0].Вид_работы = changedRow.Вид_работы;

// orderTable[0].тип_одежды = changedRow.тип_одежды;

EntityManager.UpdateOrders();

///

/// Обновляет информацию в бд об отредактированном клиенте

///


///

///

private void dataGridViewClient_CellEndEdit(object sender, DataGridViewCellEventArgs e)

var changedRow = (ПользователиRow)((DataRowView)((DataGridView)sender).CurrentRow.DataBoundItem).Row;

var userTable = EntityManager.FilterUsers($"Идентификатор = {changedRow.Идентификатор}");

userTable[0].Идентификатор = changedRow.Идентификатор;

userTable[0].Фамилия = changedRow.Фамилия;

userTable[0].Имя = changedRow.Имя;

userTable[0].Отчество = changedRow.Отчество;

userTable[0].номер_телефона = changedRow.номер_телефона;

userTable[0]._E_mail = changedRow._E_mail;

EntityManager.UpdateUsers();

this.заказы_с_клиентамиTableAdapter.Fill(this.пошив_и_ремонт_одеждыDataSet.Заказы_с_клиентами);

///

/// Переключает фильтрацию заказов по полю "Заказ готов": true, false, all

///


///

///

private void readyOrdersFilterCheckBox_CheckStateChanged(object sender, EventArgs e)

switch (this.readyOrdersFilterCheckBox.CheckState)

case CheckState.Checked:

this.readyOrNotReadyOrdersFilter = "[Заказ готов] = TRUE";

this.readyOrdersFilterCheckBox.Text = "Отображаются готовые заказы";

break;

case CheckState.Indeterminate:

this.readyOrNotReadyOrdersFilter = string.Empty;

this.readyOrdersFilterCheckBox.Text = "Отображаются все заказы";

break;

case CheckState.Unchecked:

this.readyOrNotReadyOrdersFilter = "[Заказ готов] = FALSE";

this.readyOrdersFilterCheckBox.Text = "Отображаются неготовые заказы";

break;

this.заказыСКлиентамиBindingSource.Filter = EntityManager.UnionFilter(

this.textBoxOrdersFilter,

this.readyOrNotReadyOrdersFilter);

Добавление заказа.

private void Добавление_заказа_Load(object sender, EventArgs e)

this.тип_одеждыTableAdapter.Fill(this.пошив_и_ремонт_одеждыDataSet.Тип_одежды);

this.вид_работTableAdapter.Fill(this.пошив_и_ремонт_одеждыDataSet.Вид_работ); this.пользователи_для_заказовTableAdapter.Fill(this.пошив_и_ремонт_одеждыDataSet.Пользователи_для_заказов);

orderPriceComboBox_SelectedValueChanged(null, null);

///

/// Добавляет заказ в таблицу

///


///

///

private void addOrderButton_Click(object sender, EventArgs e)

var newOrder = EntityManager.OrderDataTable.NewЗаказыRow();

newOrder.Номер_клиента = (int)this.clientComboBox.SelectedValue;

newOrder.Вид_работы = (int)this.workKindComboBox.SelectedValue;

newOrder.Тип_одежды = (int)this.dressTypeComboBox.SelectedValue;

newOrder.Цена = this.priceNumericUpDown.Value;

EntityManager.OrderDataTable.AddЗаказыRow(newOrder);

EntityManager.UpdateOrders();

MessageBox.Show("Заказ успешно добавлен");

this.Close();

///

/// Загружает цену из таблицы "Цены работ", если выбранная пара значений "Тип одежды" и "Вид работы"

/// найдена в соответствующих полях

///


///

///

private void orderPriceComboBox_SelectedValueChanged(object sender, EventArgs e)

if(workKindComboBox.SelectedItem == null || dressTypeComboBox.SelectedItem == null)

return;

var filterCondition = $"[Вид работы] = {this.workKindComboBox.SelectedValue} AND [Тип одежды] = {this.dressTypeComboBox.SelectedValue}";

var foundRowWorkPrices = EntityManager.FilterWorkPrices(filterCondition).FirstOrDefault();

this.priceNumericUpDown.Value = foundRowWorkPrices?.Цена as decimal? ?? 0m;

Добавление клиента.

private void addClientButton_Click(object sender, EventArgs e)

if (!CheckTextBoxes())

MessageBox.Show("Заполните все поля");

return;

var newUser = EntityManager.UserDataTable.NewПользователиRow();

newUser.Фамилия = this.textBoxSurname.Text;

newUser.Имя = this.textBoxName.Text;

newUser.Отчество = this.textBoxPatronymic.Text;

newUser.номер_телефона = this.textBoxTelefon.Text;

newUser._E_mail = this.textBoxEmail.Text;

EntityManager.UserDataTable.AddПользователиRow(newUser);

EntityManager.UpdateUsers();

MessageBox.Show("Клиент успешно добавлен");

this.Close();

private bool CheckTextBoxes()

if (textBoxSurname.Text == "" || textBoxName.Text == "" ||

textBoxPatronymic.Text == "" || textBoxTelefon.Text == ""

|| textBoxEmail.Text == "")

return false;

return true;

private void textBoxSurname_KeyPress(object sender, KeyPressEventArgs e)

if (!Char.IsDigit(e.KeyChar)) return;

else

e.Handled = true;

private void textBoxTelefon_KeyPress(object sender, KeyPressEventArgs e)

char c = e.KeyChar;

if (char.IsLetter(c))

e.Handled = true;

Регистрация.

private bool CheckTextBoxes()

if (textBoxSurname.Text == "" || textBoxName.Text == "" ||

textBoxPatronymic.Text == "" || textBoxLogin.Text == "" ||

textBoxPassword.Text == "" || textBoxTelefon.Text == "" || textBoxEmail.Text == "")

return false;

return true;

private void buttonSave_Click(object sender, EventArgs e)

if (!CheckTextBoxes())

MessageBox.Show("Заполните все поля");

return;

var newUser = EntityManager.UserDataTable.NewПользователиRow();

newUser.Фамилия = this.textBoxSurname.Text;

newUser.Имя = this.textBoxName.Text;

newUser.Отчество = this.textBoxPatronymic.Text;

newUser.логин = this.textBoxLogin.Text;

newUser.пароль = this.textBoxPassword.Text;

newUser.номер_телефона = this.textBoxTelefon.Text;

newUser._E_mail = this.textBoxEmail.Text;

EntityManager.UserDataTable.AddПользователиRow(newUser);

EntityManager.UpdateUsers();

MessageBox.Show("Регистрация успешна");

Close();

private void textBoxSurname_KeyPress(object sender, KeyPressEventArgs e)

if (!Char.IsDigit(e.KeyChar)) return;

else

e.Handled = true;

private void textBoxTelefon_KeyPress(object sender, KeyPressEventArgs e)

char c = e.KeyChar;

if (char.IsLetter(c))

e.Handled = true;


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