计算机毕业设计介绍:
5.7.2 设计思路及实现
该界面通过对数据库表sfb添加、修改、删除等操作来完成对业主缴费的修改,通过对sfb表与tcb表的关联操作来完成对业主水,电,气、停车等各项总费用与总金额的查询统计功能。
1. 对于sfb表的查询
(1)判断是否用户已选择查询条件,若未选择,提示“请选择查询条件”。否则,执行(2)。
(2)在数据库中搜索与用户输入搜索项相同的记录。
(3)搜索到相同的记录后将记录全部列出。
2. 添加
(1)判断用户是否将门牌号、收费编号、水、电费等所有信息输入完整,若有输入框输入长度小于1,则提示“客户所有信息必须填写”若输入完整,则执行(2)
(2)将用户输入的信息分别更新至数据库。操作成功后提示“增加数据集记录操作成功”否则进入(3)。
(3)添加未成功,提示“增加数据集记录操作失败”。
3. 修改
(1)首先在表格内点击选定需要修改的行,系统会自动记录下来。在下面的输入框输入修改后的金额等信息。
(2)在连接数据库后找到该行,进行数据更新。另,对于是否缴费的勾选项应做一个判断。
(3)完成修改,提示“修改成功!”并在表内显示更改后的数据。
4. 删除
(1)在表格内点击选定需要修改的行,由系统后台自动记录。
(2)根据用户选择的记录,系统对该行记录进行删除。
(3)完成删除,提示“删除成功!”在表内显示更改后的数据。
5. 缴费统计[1][13]
(1)以门牌号为主键,对表sfb与表tcb进行关联操作
(2)在表sfb与表tcb中搜索门牌号与用户输入的搜索项相同的记录
(3)找到符合条件的记录之后,将记录的各项进行加法运算,生成临时数据库文件,并显示出最后的计算结果。
5.7.3 代码及注释
由于本模块的缴费统计设计到数据库表与表之间的管理操作,因此在此处也给出关键部分的详细代码,并附上注释。
private void button1_Click(object sender, EventArgs e)
{
try
{
string connstr;
string strsql = "select g.mph as 门牌号,g.sf as 总水费,g.df as 总电费,g.qf as 总气费,g.wgf as 总物管费,g.qtf as 总其他费,h.sjsf as 总停车费 from (select k.mph,sum(k.sf) as sf,sum(k.df) as df,sum(k.qf) as qf,sum(k.wgf) as wgf,sum(k.qtf) as qtf from (select s.mph,s.sf,s.df,qf,s.wgf,s.qtf from sfb s where s.mph='" + textBox1.Text + "') k group by k.mph) g INNER JOIN (select l.mph,sum(l.sjsf) as sjsf from (select d.mph,d.sjsf from tcb d where d.mph='" + textBox1.Text + "') l group by l.mph) h on g.mph=h.mph";//SQL语句,表与表的关联操作,以得到新表中的数据
connstr = "Provider=Microsoft.jet.oledb.4.0;data source=" + Application.StartupPath + "\\xqwy.mdb";//设置数据库路径
OleDbConnection conn = new OleDbConnection(connstr);
conn.Open();//打开数据库
OleDbDataAdapter da = new OleDbDataAdapter(strsql, conn); //提交前面数据库语句,更新表
DataSet ds = new DataSet();
da.Fill(ds, "tcb");//将查询得出的数据填充至数据集
DataTable mytable = new DataTable();
mytable = ds.Tables[0]; //定义一个内存表,将数据集中的数据赋值给内存表
int i = Int32.Parse(mytable.Rows[0][1].ToString());
int i1 = Int32.Parse(mytable.Rows[0][2].ToString());
int i2 = Int32.Parse(mytable.Rows[0][3].ToString());
int i3 = Int32.Parse(mytable.Rows[0][4].ToString());
int i4 = Int32.Parse(mytable.Rows[0][5].ToString());
int i5 = Int32.Parse(mytable.Rows[0][6].ToString());//将内存表中存的六项值分别赋给六个变量。
label3.Text = (i + i1 + i2 + i3 + i4 + i5).ToString();//将六个变量值相加显示在label3.text中
dataGridView1.DataSource = mytable; //将内存表数据显示在控件dataGridView1中
}
catch
{
MessageBox.Show("未查询到任何记录。");
dataGridView1.DataSource = null; //否则提示“未查询到任何记录”,控件显示空
}
}
〖资料来源:计算机毕业论文 www.xiaoniu168.com〗
第11页为计算机毕业论文部分......