Автоматизация учёта пациентов в регистратуре поликлиники

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1007,07 Кб
  • Опубликовано:
    2013-02-17
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Автоматизация учёта пациентов в регистратуре поликлиники















Автоматизация учёта пациентов в регистратуре поликлиники

ОГЛАВЛЕНИЕ

программирование объектный ориентированный

ВВЕДЕНИЕ

. Постановка задачи

2. Объектно-ориентированный анализ и проектирование системы на языке UML

2.1 Диаграмма вариантов использования

.2 Диаграмма классов

.3 Диаграмма последовательности

. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

.1 Краткая характеристика используемой программной среды

.2 Описание реализации программных модулей

.3 Инструкция пользователя

ЗАКЛЮЧЕНИЕ

Приложение

ВВЕДЕНИЕ

Созданием языков программирования занимаются в большинстве случаев очень квалифицированные люди, часто группы программистов, а иногда даже международные коллективы. Однако подавляющее большинство языков программирования умирало, едва родившись. Лишь к немногим из них был проявлен интерес, и буквально единицы получили действительно широкое распространение.# (произносится си диез) - объектно-ориентированный язык программирования. Разработан в 1998-2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework и впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270.# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщѐнные типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.

Переняв многое от своих предшественников - языков C++, Java, Delphi, Модула и Smalltalk - С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем, например, C# не поддерживает множественное наследование классов (в отличие от C++).

1. ПОСТАНОВКА ЗАДАЧИ

Программа «Учёт пациентов в регистратуре поликлиники» для учёта пациентов в регистратуре поликлиники.

)        Для добавления нового пациента необходимо ввести: Ф.И.О., пол, дату рождения, дату поступления, текущее заболевание и выбрать из списка лечащего врача.

Программа должна обеспечивать выполнение следующих функций:

·        добавление пациента;

·        вывод списка пациентов (в табличной форме);

·        удаление пациента на случай, когда он выздоровеет либо умрет;

·        добавление лечащего врача, процедур, лекарств.

) Составить UML-диаграммы: вариантов использования, классов, последовательности.

) Провести тестирование на правильность ввода данных и правильность обработки исключительных ситуаций.

Для работы с базой данных используется класс sqliteclass, в котором содержатся все необходимые конструкции работы с базой.

2. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ АНАЛИЗ И ПРОЕКТИРОВАНИЕ СИСТЕМЫ НА ЯЗЫКЕ UML

Данный этап работы предусматривает создание основных диаграмм, определяющих модель построения программы. В этих рамках будут сделаны

диаграммы вариантов использования, классов, последовательности, состояний (каждого класса), деятельности. Разработка этих элементов позволяет сделать комплексное представление о программе.

.1 Диаграмма вариантов использования

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

2.2 Диаграмма классов

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

Рисунок 1. Диаграмма класса sqliteclass

2.3 Диаграмма последовательности

Диаграммы последовательностей используется для определения логики работы программы. Они отображают объекты, взаимодействующие в соответствие со сценарием. Объекты посылают друг другу сообщения в определенной сценарием последовательности.

3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

.1 Краткая характеристика используемой программной среды

Для написания программы, задан язык С#Visual Studio - линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework и Microsoft Silverlight.Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода.

Встроенный отладчик может работать как отладчик уровня исходного кода, так и как отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (как например, Subversion и Visual SourceSafe), добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования или инструментов для прочих аспектов цикла разработки программного обеспечения (например, клиент Team Explorer для работы с Team Foundation Server).

3.2 Описание реализации программных модулей

В таблице 1 приведено описание методов классов программы.

Имя класса

Название метода

Описание метода

Path

Combine

Указание полного пути к файлу базы данных

mydb

drExecute

Выполнение запроса к базе с возвращением результата


iExecuteNonQuery

Выполнение запроса на добавление или удаление без возврата


Код программы представлен в приложении.

Описание файлов, используемых в проекте, представлено в таблице 2.

Имя файла

Описание файла

Form1.cs

Содержит описание класса Form1

Form1.Designer.cs

Содержит описание класса дизайна формы Form1

Form2.cs

Содержит описание класса Form2

Form2.Designer.cs

Содержит описание класса дизайна формы Form2

Form3.cs

Содержит описание класса Form3

Form3.Designer.cs

Содержит описание класса дизайна формы Form3

Form4.cs

Содержит описание класса Form4

Form4.Designer.cs

Содержит описание класса дизайна формы Form4

Form5.cs

Содержит описание класса Form5

Form5.Designer.cs

Содержит описание класса дизайна формы Form5

Program.cs

Содержит главную точку входа для приложения

Sqliteclass.cs

Содержит конструктор базы данных, функции обработки SQL-запросов к базе данных


.3 Инструкция пользователю

Запуск программы осуществляется открытием файла pacient.exe

Главное окно показано на следующем скриншоте и представляет собой форму с 4 кнопками:

·       Карточка больного

·        Врачи

·        Процедуры

·        Лекарства


Карточка больного


Здесь представлены следующие элементы:

·       Таблица, в которой содержатся все занесенные в БД пациенты.

·        Форма добавления нового пациента и его основной информации: ФИО, дата рождения, заболевание и другое.

·        Форма просмотра текущей информации о пациенте.

Для того, чтобы удалить запись из БД, необходимо выбрать его из таблицы вверху формы и нажать кнопку «Удалить».

Внимание! Необходимо корректно заполнять и удалять поля, иначе произойдет ошибка:


Врачи

Здесь содержится форма добавления новой записи, таблица с занесенными в БД записями о врачах и форма для их удаления из БД.


Процедуры

Здесь содержится информация о назначенных процедурах, можно добавлять и удалять процедуру.


Лекарства


ЗАКЛЮЧЕНИЕ

В результате выполнения курсовой работы был разработан программный продукт на языке С#. Интерфейс представляет собой экранные форму с меню и диалоговыми окнами.

Плюсами спроектированной программы являются:

) удобный, интуитивно понятный интерфейс;

) защита от неправильного ввода;

Также в ходе выполнения работы было проведено тестирование, показывающее, что в программу необходимо добавить проверку на правильность вводимых данных. Найденные ошибки устранены, обработка исключений работает.

Таким образом, в данной курсовой работе решена поставленная задача.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Леоненков А.В. Самоучитель UML.-СПб.: БХВ-Петербург,2001.-304с.

. Павловская Т.А. C#. Программирование на языке высокого уровня.

Учебник для вузов.-СПб.: Питер, 2007.-432с.

. Эндрю Троелсен. Язык программирования C# 2010 и платформа .NET

.0- 5-е изд. - М.: Вильямс, 2010. - 1392 с.

. Герберт Шилдт C# 4.0: полное руководство. - М.: «Вильямс», 2010. -1056 с.

. Кристиан Нейгел, Карли Уотсон и др. Visual C# 2010: полный курс. - М.:Диалектика, 2010.

. Трей Нэш C# 2010: ускоренный курс для профессионалов.- М.: Вильямс,2010. - 592 с.

ПРИЛОЖЕНИЕ

Содержание файла sqliteclass.cs

using System;System.Collections.Generic;System.Linq;System.Text;Finisar.SQLite;System.Data;Pacient

{

class sqliteclass

{

//Конструктор

public sqliteclass()

{

}

#region ExecuteNonQuery

public int iExecuteNonQuery(string FileData, string sSql, int where)

{

int n = 0;

try

{

using (SQLiteConnection con = new SQLiteConnection())

{

if (where == 0)

{

con.ConnectionString = @"Data Source=" + FileData + ";New=True;Version=3";

}

else

{

con.ConnectionString = @"Data Source=" + FileData + ";New=False;Version=3";

}

con.Open();

using (SQLiteCommand sqlCommand = con.CreateCommand())

{

sqlCommand.CommandText = sSql;

n = sqlCommand.ExecuteNonQuery();

}

con.Close();

}

}

catch (Exception ex)

{

n = 0;

}

return n;

}

#endregion

#region Execute

public DataRow[] drExecute(string FileData, string sSql)

{

DataRow[] datarows = null;

SQLiteDataAdapter dataadapter = null;

DataSet dataset = new DataSet();

DataTable datatable = new DataTable();

try

{

using (SQLiteConnection con = new SQLiteConnection())

{

con.ConnectionString = @"Data Source=" + FileData + ";New=False;Version=3";

con.Open();

using (SQLiteCommand sqlCommand = con.CreateCommand())

{

dataadapter = new SQLiteDataAdapter(sSql, con);

dataset.Reset();

dataadapter.Fill(dataset);

datatable = dataset.Tables[0];

datarows = datatable.Select();

}

con.Close();

}

}

catch (Exception ex)

{

datarows = null;

}

return datarows;

}

#endregion

}

}

Содержание файла Form1.csSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.IO;Pacient

{

public partial class Form1 : Form

{

private sqliteclass mydb = null;

private string sCurDir = string.Empty;

private string sPath = string.Empty;

private string sSql = string.Empty;

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

sPath = Path.Combine(Application.StartupPath, "mybd.db");

Text = "Поликлинника";

}

private void button1_Click(object sender, EventArgs e) //Карточка больного

{

Form2 f = new Form2(); // создаем

f.ShowDialog(); // показываем

}

private void button2_Click(object sender, EventArgs e) //Список врачей

{

Form3 f = new Form3(); // создаем

f.ShowDialog(); // показываем

}

private void button3_Click(object sender, EventArgs e) //Процедуры

{

Form4 f = new Form4(); // создаем

f.ShowDialog(); // показываем

}

private void button4_Click(object sender, EventArgs e)

{

Form5 f = new Form5(); // создаем

f.ShowDialog(); // показываем

}

}

}

Содержание файла Form2.csSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.IO;Pacient

{

public partial class Form2 : Form

{

private sqliteclass mydb = null;

private string sCurDir = string.Empty;

private string sPath = string.Empty;

private string sSql = string.Empty;

int i = -1;

public string fio;

public string male;

public string birth_date;

public string receipt;

public string disease;

public string doctor;

string medicine;

public string proc;

public Form2()

{

InitializeComponent();

}

private void Form2_Load(object sender, EventArgs e)

{

sPath = Path.Combine(Application.StartupPath, "mybd.db");

Text = "Карточка больного";

//Заполнение таблицы

mydb = new sqliteclass();

sSql = "SELECT id,fio,male,birth_date,receipt,doctor FROM card ORDER BY id DESC";

DataRow[] datarows = mydb.drExecute(sPath, sSql);

if (datarows == null){

Text = "Ошибка чтения!";

mydb = null;

return;

}

foreach (DataRow dr in datarows){

i++;

dataGridView1.ClearSelection();

dataGridView1.Rows.Add(1);

dataGridView1.Rows[i].Cells[0].Value = dr["fio"].ToString().Trim();

dataGridView1.Rows[i].Cells[1].Value = dr["male"].ToString().Trim();

dataGridView1.Rows[i].Cells[2].Value = dr["birth_date"].ToString();

dataGridView1.Rows[i].Cells[3].Value = dr["receipt"].ToString().Trim();

dataGridView1.Rows[i].Cells[4].Value = dr["doctor"].ToString().Trim();

}

//Инициализация формы добавления(доктор)

mydb = new sqliteclass();

sSql = "select * from doctor";

DataRow[] datarows2 = mydb.drExecute(sPath, sSql);

if (datarows2 == null){

Text = "Ошибка чтения!";

mydb = null;

return;

}

foreach (DataRow dr in datarows2){

comboBox2.Items.Add(dr["name"].ToString());

}

//Инициализация формы добавления(процедуры)

mydb = new sqliteclass();

sSql = "select title from proc";

DataRow[] datarows3 = mydb.drExecute(sPath, sSql);

if (datarows3 == null){

Text = "Ошибка чтения!";

mydb = null;

return;

}

foreach (DataRow dr in datarows3){

comboBox3.Items.Add(dr["title"].ToString());

}

//Инициализация формы добавления(лекарства)

mydb = new sqliteclass();

sSql = "select * from medicine";

DataRow[] datarows4 = mydb.drExecute(sPath, sSql);

if (datarows4 == null)

{

Text = "Ошибка чтения!";

mydb = null;

return;

}

foreach (DataRow dr in datarows4)

{

listBox2.Items.Add(dr["name"].ToString());

}

}

private void button1_Click(object sender, EventArgs e) //Добавить пациента

{

try

{

fio = Convert.ToString(textBox1.Text).Trim();

if (radioButton1.Checked) {male = "Мужской";} else if (radioButton2.Checked) {male = "Женский";}

birth_date = Convert.ToString(this.dateTimePicker1.Text);

receipt = Convert.ToString(this.dateTimePicker2.Text);

doctor = Convert.ToString(comboBox2.Text).Trim();

for (int k = 0; k < listBox2.SelectedItems.Count; k++)

{

medicine = medicine + listBox2.SelectedItems[k].ToString() + "\n";

}

disease = Convert.ToString(richTextBox1.Text).Trim();

proc = Convert.ToString(comboBox3.Text).Trim();

if (fio == "") { MessageBox.Show("Заполните поле Ф.И.О.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }

if (male == "" || male == null) { MessageBox.Show("Выберите пол", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }

if (doctor == "" || male == null) { MessageBox.Show("Выберите лечащего врача", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }

if (disease == "") { MessageBox.Show("Опишите заболевание", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }

mydb = new sqliteclass();

sSql = @"insert into card (fio,male,birth_date,receipt,medicine,doctor,disease,proc) values('" + fio + "','" + male + "','" + birth_date + "','" + receipt + "','" + medicine + "','" + doctor + "','" + disease + "','" + proc + "');";

if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0) {

Text = "Ошибка записи!";

mydb = null;

return;

} else {

Text = "Запись 1 добавлена!";

textBox1.Text = "";

richTextBox1.Text = "";

//Добавляем в таблицу новую запись при успешном добавлении в базу

i++;

dataGridView1.Rows.Add(1);

dataGridView1.Rows[i].Cells[0].Value = fio.ToString().Trim();

dataGridView1.Rows[i].Cells[1].Value = male.ToString().Trim();

dataGridView1.Rows[i].Cells[2].Value = birth_date.ToString();

dataGridView1.Rows[i].Cells[3].Value = receipt.ToString().Trim();

dataGridView1.Rows[i].Cells[4].Value = doctor.ToString().Trim();

}

mydb = null;

return;

}

catch

{

MessageBox.Show("Заполните правильно необходимые поля.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

private void button2_Click(object sender, EventArgs e) //Удалить пациента

{

try

{

string it = (string)dataGridView1.CurrentRow.Cells[0].Value;

mydb = new sqliteclass();

sSql = "DELETE FROM card WHERE fio = '" + it + "'";

if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0){

Text = "Ошибка удаления записи!";

mydb = null;

return;

}

mydb = null;

Text = "Запись удалена из БД!";

 int ind = dataGridView1.SelectedCells[0].RowIndex;

dataGridView1.Rows.RemoveAt(ind);

}

catch

{

MessageBox.Show("Вы не выбрали строку для удаления", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)

{

 string fio = (string)dataGridView1.CurrentRow.Cells[0].Value;

mydb = new sqliteclass();

sSql = "select * from card WHERE fio LIKE '%" + fio + "%'";

DataRow[] datarows = mydb.drExecute(sPath, sSql);

if (datarows == null){

Text = "Ошибка чтения!";

mydb = null;

return;

}

foreach (DataRow dr in datarows){

textBox2.Text = dr["fio"].ToString();

label17.Text = dr["male"].ToString();

textBox3.Text = dr["birth_date"].ToString();

textBox4.Text = dr["receipt"].ToString();

textBox6.Text = dr["doctor"].ToString();

richTextBox2.Text = dr["disease"].ToString();

richTextBox4.Text = dr["medicine"].ToString();

textBox7.Text = dr["proc"].ToString();

}

}

}

}

Содержание файла Form3.csSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.IO;Pacient

{

public partial class Form3 : Form

{

private sqliteclass mydb = null;

private string sCurDir = string.Empty;

private string sPath = string.Empty;

private string sSql = string.Empty;

public string name;

public Form3()

{

InitializeComponent();

}

private void Form3_Load(object sender, EventArgs e)

{

sPath = Path.Combine(Application.StartupPath, "mybd.db");

Text = "Врачи";

mydb = new sqliteclass();

sSql = "select * from doctor";

DataRow[] datarows = mydb.drExecute(sPath, sSql);

if (datarows == null)

{

Text = "Ошибка чтения!";

mydb = null;

return;

}

foreach (DataRow dr in datarows)

{

listBox1.Items.Add(dr["name"].ToString());

}

}

private void button1_Click(object sender, EventArgs e) //Удалить

{

try

{

string it = listBox1.SelectedItem.ToString().Trim();

mydb = new sqliteclass();

sSql = "DELETE FROM doctor WHERE name LIKE '%" + it + "%'";

if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0) {

Text = "Ошибка удаления!";

mydb = null;

return;

}

mydb = null;

Text = "Запись удалена из БД!";

listBox1.Items.Clear();

mydb = new sqliteclass();

sSql = "SELECT * FROM doctor";

DataRow[] datarows = mydb.drExecute(sPath, sSql);

if (datarows == null) {

Text = "Ошибка чтения!";

mydb = null;

return;

}

foreach (DataRow dr in datarows) {

listBox1.Items.Add(dr["name"].ToString());

}

return;

}

catch

{

MessageBox.Show("Вы не выбрали строку для удаления", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

private void button2_Click(object sender, EventArgs e) //Добавить

{

name = Convert.ToString(textBox1.Text.Trim());

if (name == "") { MessageBox.Show("Введите имя врача", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }

mydb = new sqliteclass();

sSql = @"insert into doctor (name) values('" + name + "');";

//Проверка работы

if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0)

{

Text = "Ошибка записи!";

mydb = null;

return;

} else {

Text = "Доктор добавлен в базу!";

textBox1.Text = "";

listBox1.Items.Add(name.ToString().Trim());

}

mydb = null;

return;

}

}

}

Содержание файла Form4.csSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.IO;Pacient

{

public partial class Form4 : Form

{

private sqliteclass mydb = null;

private string sCurDir = string.Empty;

private string sPath = string.Empty;

private string sSql = string.Empty;

public Form4()

{

InitializeComponent();

}

private void Form4_Load(object sender, EventArgs e)

{

sPath = Path.Combine(Application.StartupPath, "mybd.db");

Text = "Процедуры";

mydb = new sqliteclass();

sSql = "select * from proc";

DataRow[] datarows = mydb.drExecute(sPath, sSql);

if (datarows == null)

{

Text = "Ошибка чтения!";

mydb = null;

return;

}

foreach (DataRow dr in datarows)

{

listBox1.Items.Add(dr["title"].ToString());

}

}

private void button1_Click(object sender, EventArgs e) //удалить

{

try {

string it = listBox1.SelectedItem.ToString().Trim();

mydb = new sqliteclass();

sSql = "DELETE FROM proc WHERE title LIKE '%" + it + "%'";

if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0)

{

Text = "Ошибка удаления!";

mydb = null;

return;

}

mydb = null;

Text = "Запись удалена из БД!";

listBox1.Items.Clear();

mydb = new sqliteclass();

sSql = "SELECT * FROM proc";

DataRow[] datarows = mydb.drExecute(sPath, sSql);

if (datarows == null)

{

Text = "Ошибка чтения!";

mydb = null;

return;

}

foreach (DataRow dr in datarows)

{

listBox1.Items.Add(dr["title"].ToString());

}

return;

}

catch

{

MessageBox.Show("Вы не выбрали строку для удаления", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

private void button2_Click(object sender, EventArgs e) //Добавить

{

string name = Convert.ToString(textBox1.Text.Trim());

if (name == "") { MessageBox.Show("Введите название процедуры", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }

mydb = new sqliteclass();

sSql = @"insert into proc (title) values('" + name + "');";

//Проверка работы

if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0)

{

Text = "Ошибка записи!";

mydb = null;

return;

}

else

{

Text = "Процедура добавлена в базу!";

textBox1.Text = "";

listBox1.Items.Add(name.ToString().Trim());

}

mydb = null;

return;

}

}

}

Содержание файла Form5.csSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.IO;Pacient

{

public partial class Form5 : Form

{

private sqliteclass mydb = null;

private string sCurDir = string.Empty;

private string sPath = string.Empty;

private string sSql = string.Empty;

public Form5()

{

InitializeComponent();

}

private void Form5_Load(object sender, EventArgs e)

{

sPath = Path.Combine(Application.StartupPath, "mybd.db");

Text = "Лекарства";

mydb = new sqliteclass();

sSql = "select * from medicine";

DataRow[] datarows = mydb.drExecute(sPath, sSql);

if (datarows == null)

{

Text = "Ошибка чтения!";

mydb = null;

return;

}

foreach (DataRow dr in datarows)

{

listBox1.Items.Add(dr["name"].ToString());

}

}

private void button1_Click(object sender, EventArgs e)

{

string name = Convert.ToString(textBox1.Text.Trim());

if (name == "") { MessageBox.Show("Введите название лекарства", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }

mydb = new sqliteclass();

sSql = @"insert into medicine (name) values('" + name + "');";

//Проверка работы

if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0){

Text = "Ошибка записи!";

mydb = null;

return;

} else {

Text = "Лкарство добавлено в базу!";

textBox1.Text = "";

listBox1.Items.Add(name.ToString().Trim());

}

mydb = null;

return;

}

private void button2_Click(object sender, EventArgs e)

{

try

{

string it = listBox1.SelectedItem.ToString().Trim();

mydb = new sqliteclass();

sSql = "DELETE FROM medicine WHERE name LIKE '%" + it + "%'";

if (mydb.iExecuteNonQuery(sPath, sSql, 1) == 0)

{

Text = "Ошибка удаления!";

mydb = null;

return;

}

mydb = null;

Text = "Запись удалена из БД!";

listBox1.Items.Clear();

mydb = new sqliteclass();

sSql = "SELECT * FROM medicine";

DataRow[] datarows = mydb.drExecute(sPath, sSql);

if (datarows == null)

{

Text = "Ошибка чтения!";

mydb = null;

return;

}

foreach (DataRow dr in datarows)

{

listBox1.Items.Add(dr["name"].ToString());

}

return;

}

catch

{

MessageBox.Show("Вы не выбрали строку для удаления", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

}

}

Похожие работы на - Автоматизация учёта пациентов в регистратуре поликлиники

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!