Имя
файла
|
Описание
файла
|
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);
}
}
}
}