零售药店管理系统设计报告ASP.docx
《零售药店管理系统设计报告ASP.docx》由会员分享,可在线阅读,更多相关《零售药店管理系统设计报告ASP.docx(15页珍藏版)》请在冰豆网上搜索。
零售药店管理系统设计报告ASP
苏州科技学院
二○○九 ~二○一○学年第二学期
电子信息工程学院
课程设计报告书
课程名称:
零售药店管理系统设计
班级:
计算机 0825
学号0730107548
姓名:
王噱
指导教师:
吴 宏 杰
二○一○年七月
1
1.系统功能需求分析
药店管理管理系统要求实现对药品进行计算机管理。
该系统主要包括以下
内容:
⑴用户登录验证
⑵药品主要信息表,对其的操作有插入、删除、查找、更新。
⑶会员信息表,对其的操作有查找,按会员编号查找。
⑷销售情况表,对其的操作有排序,按月总收入排序。
2.系统分析与设计
2.1 数据库结构
本实验共有 5 张表。
1,用户登录的相关数据表结构(本实验是一个药店管理系统,主要用户
就是管理员,管理员就一人)
2,药品主要信息表
2
3,会员信息表
4,6 个月的销售额表
3
5,每月的总收入表
4
2.2窗体类型
本实验包括四个窗体:
1)用户登录窗体
2)药品主要信息窗体
3)会员管理窗体
4)药店销售情况窗体
2.3流程图
登录密码.mdb
身份验证
药品信息
b.mdb
用户管理会员信息.mdb
销售情况销售情况.mdb
5
3.用户手册
3.1 用户登录
用户登录设计界面图如下:
图 4.1 用户登录设计界面
用户通过输入用户名和密码就可以进入主页面了,此系统主要就是给药品信
息管理员使用,所以只有一个用户。
3.2 药品信息
药品信息界面图如下:
6
图 4.2 药品信息设计界面
进入主页面后,就可以通过表看见药品的主要信息,内容有药品名称、价
格、生产批号、药物数量、生产日期、保质期。
然后页面中有有 3 个
groupBox,分别可以对药品的主要信息进行插入、删除、查询操作。
每次做插
入或者删除时,都需要按一下更新的按钮,这样就可以看到最新的数据。
每次
做完插入、删除或者查询时,可以点击右下角的清空按钮,那么以前在文本框
中的记录就会清空。
点击左上角的菜单,可以分别到会员管理页面和销售情况
页面。
3.3 会员管理
会员管理设计界面如下图:
7
图 4.3 会员管理界面
会员管理页面,有一个查询功能,是按照会员编号查询的,把编号输入文
本框,点击查询按钮,下面的 richTextBox 就会出现此会员的信息。
8
3.4 销售情况
图 4.4 销售情况界面
销售情况页面,有 2 张表,上面一张表具体显示了 6 个月来每周的销售额,
下面一张表,形象地列出了每个月的月总收入。
点击排序按钮,右边的
richTextBox 中就会按这 6 个月的月总收入排序。
4.程序主要代码
4.1 登录的相关代码
private void button1_Click(object sender, EventArgs e)
{
string cn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
Application.StartupPath +
"//biao.mdb" + ";Persist Security Info=True";
OleDbConnection cnn = new OleDbConnection(cn);
OleDbConnection cnn1 = new OleDbConnection(cn);
9
string txt3 = "Select * From 登录密码 where 用户名=" + "'" + textBox1.Text + "'"
+ " and 密码=" + textBox2.Text;
OleDbCommand com = new OleDbCommand(txt3, cnn);
DataTable dt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter();
da.SelectCommand = com;
OleDbCommandBuilder cb = new OleDbCommandBuilder(da);
da.Fill(dt);
if (dt.Rows.Count == 0)
{
MessageBox.Show("无此用户,请重新输入");
}
else
{
Form2 my = new Form2();
my.ShowDialog();
}
}
4.2 药品信息插入的相关代码
private void button3_Click(object sender, EventArgs e)
{
String strSQL = "INSERT INTO b(药品名称,价格,生产批号,药物数量,生产日期,保质期)
VALUES('" +
textBox1.Text + "'," + textBox2.Text + "," + textBox3.Text + "," +
textBox4.Text + "," + textBox5.Text + "," + textBox6.Text + ")";
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=biao.mdb");
OleDbCommand comm = new OleDbCommand(strSQL, conn);
conn.Open();
try
{
comm.ExecuteNonQuery();
MessageBox.Show("添加成功!
");
}
catch (Exception ex)
{
MessageBox.Show("添加出错!
错误原因为:
\n" + ex.Message + "\n");
}
10
conn.Close();
}
4.3 药品信息删除的相关代码
private void button2_Click(object sender, EventArgs e)
{
string connStr, delCmd;
OleDbConnection conn;
connStr =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=biao.mdb";
delCmd = "Delete From b Where 药品名称= " + "'" + textBox8.Text + "'";
OleDbCommand cmd;
conn = new OleDbConnection(connStr);
try
{
conn.Open();
cmd = new OleDbCommand(delCmd, conn);
cmd.ExecuteNonQuery();
if (textBox8.Text == "")
MessageBox.Show("请输入药品名称!
");
else
MessageBox.Show("删除成功");
}
catch (Exception ex)
{
MessageBox.Show("Error in handing:
" + ex.Message);
}
finally
{
if (conn !
= null)
conn.Close();
}
}
4.4 药品信息查询的相关代码
private void button4_Click(object sender, EventArgs e)
{
string selectCmd = "Select * From b Where 药品名称=" + "'" + textBox7.Text + "'";
string connStr =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=biao.mdb";
OleDbConnection conn;
11
OleDbCommand cmd;
OleDbDataReader myReader;
conn = new OleDbConnection(connStr);
conn.Open();
try
{
cmd = new OleDbCommand(selectCmd, conn);
myReader = cmd.ExecuteReader();
if (myReader.Read())
{
richTextBox1.Text = "药品名称:
" + myReader["药品名称"].ToString() + "\n"
+"价格:
" + myReader["价格"].
ToString() + "\n" +
"生产批号:
" + myReader["生产批号"].ToString() +
"\n" +"药物数量:
" + myReader["药物数量"].ToString()
+ "\n" +"生产日期:
" + myReader["生产日期"].ToString()
+ "\n" +"保质期:
" + myReader["保质期"].ToString() +
"\n";
}
else
{
MessageBox.Show("找不到该药品!
");
}
myReader.Close();
}
catch (Exception ex)
{
MessageBox.Show("错误:
" + ex.Message);
}
finally
{
if (conn !
= null)
conn.Close();
}
}
4.5 药品信息更新的相关代码
private void button1_Click(object sender, EventArgs e)
{
result = "";
OleDbConnection conn = new OleDbConnection(
"Provider = Microsoft.Jet.OLEDB.4.0;"
+ "Data Source = biao.mdb");
12
try
{
String strSql = "Select * From b";
conn.Open();
dadapter = new OleDbDataAdapter();
dadapter.SelectCommand = new OleDbCommand(strSql, conn);
dset = new DataSet();
dadapter.Fill(dset);
conn.Close();
dataGridView1.DataSource = dset.Tables[0];
}
catch (Exception ex)
{
MessageBox.Show("错误:
" + ex.Message);
}
finally
{
if (conn !
= null)
conn.Close();
}
}
4.6 文本框清空的相关代码
private void button6_Click(object sender, EventArgs e)
{
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
textBox5.Text = "";
textBox6.Text = "";
textBox7.Text = "";
textBox8.Text = "";
richTextBox1.Text = "";
}
4.7 月总收入排序的相关代码
private void button2_Click(object sender, EventArgs e)
{
OleDbConnection a = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=biao.mdb");
13
string sqlString = "select 月份,月总收入from 月总收入order by 月总收入";
OleDbCommand t = new OleDbCommand(sqlString, a);
a.Open();
OleDbDataReader dr = t.ExecuteReader();
richTextBox1.Text = "月份\t\t月总收入\n";
while (dr.Read())
{
richTextBox1.AppendText(dr["月份"] + "\t\t");
richTextBox1.AppendText(dr["月总收入"] + "\t\t\n");
}
a.Close();
}
5.设计过程中遇到的主要问题
1) dataGridView 在 Form 的显示
原来觉得每次打开页面,都要把数据库加载一下,觉得很多余,所以选
择打开页面直接显示 dataGridView,谁知道,后来很麻烦,每次改数据库里的
内容的时候,都要重新导入一次新的数据源,但旧的数据源依然在,总是出现
错误。
后来数据源太多了,重新做了个新的项目,把整个都复制了过来,这样
数据库的内容是定下来了,所以仍然打开页面直接显示 dataGridView。
不过,
下次做别的有关数据库的项目的时候,肯定要用加载的。
2)数据库里内容的修改
数据库里的内容有插入,删除,修改,完成控件功能后,例如,插入,
运行插入以后,看了数据库里的内容,完成了插入功能,可是,Form 中
dataGridView 没有显示。
原来,控件中的功能是与数据库相连,不过,数据库
到 Form 的显示有个时差,所以,我又加了个控件,每次修改数据库内容后,
都更新一下,那么 dataGridView 中显示的就是修改后的内容了。
3)排序问题
本来消费的表,是这样建立的,每个月都有,第一周、第二周、第三周、
第四周、月总消费额这几项。
然后,就想按照最后一行的月总消费额排序。
可
是,我们教过的排序就是按照竖列排列。
后来想了好久,都找不出答案。
最后,
我索性把消费的表弄成了两张,一张是显示每月的消费额,另一张就是单独的
14
月总消费额,那么就轻松地解决了排序问题。
6.总结
经过三年的学习,我们对数据库、C#等相关知识有了一定的了解。
又经过
了几次的实训,我们对理论知识运用到实际练习中又有了一定的基础。
本次实训,我做的是药店管理系统,主要练习内容就是数据库和 C#能够联
系在一起。
将做好的数据库导入窗体中,通过一些控件的功能,实现对数据库
的修改、更新。
此次主要是对于药品信息实现插入、删除、查询、更新的功能,
又对会员信息进行按编号查询的功能,最后对月总销售额进行排序的功能。
通过本次实训,我进一步巩固了做系统的相关知识,将数据库的插入、删
除、查询、排序等功能运用自如。
身份验证虽说是老生常谈的问题,我们也不
容忽视,也是很重要的一部分。
在实训过程中,难免会遇到问题,不过,经过仔细研究,不断尝试,一遍
一遍检查、调试,问题总会一个个被攻破,被解决。
我们要不怕麻烦,有耐心,
细心,仔细,那么只要你的理论知识强,再加上有动手能力,一切问题都不是
问题。
15