《数据库原理及应用》课程设计
设计报告
院 系 班级
学 号 姓名
指导教师
题 目
年 12 月 14 日
摘要:
家庭理财系统,即 Family Conduct Financial Transactions System。它利用计算机应用技
术,使家庭理财逐步信息化,从而形成由家庭成员与计算机共同构成服务于家庭的人机信
息财务管理系统。随着计算机发展,家庭理财系统已经成为很多家庭财务管理的一个重要
途径。计算机的最大优点在于利用它能够高效准确地进行财务信息管理。使用计算机进行
信息财务管理,不仅提高了工作效率,而且大大的提高了其安全性。家庭财务管理系统是
典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的
开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于
后者则要求应用程序功能完备,易使用等特点。
关键字:家庭理财;数据库;
Summary: The family financial management system, namely the Family Conduct Financial Transactions
System. It uses computer technology to make family financial management step by step information, to form
the computer by family members together constitute the human-computer information services in the family
financial management system. With the computer development, family financial management system, many
families in financial management has become an important way. The biggest advantage is that the computer
can use it to carry out efficient and accurate financial information management. Financial management of
information using computers not only improve the working efficiency, but also greatly improve its
financial management system is a typical management information system (MIS), which mainly
includes the establishment and maintenance of back-end database and front-end application development
aspects. Request for the establishment of data consistency and integrity, data security, a good library. For the
latter application powerful, easy to use and so on.
Keywords: family financial management; database;
摘要: .............................................................................................................................................1
1 家庭理财管理 .............................................................................................................................2
需求分析 ..................................................................................................................................2
数据库概念结构设计 ..............................................................................................................3
概念结构设计 ................................................................................................................3
数据库设计 ....................................................................................................................5
系统功能模块设计 ..................................................................................................................6
系统功能模块划分 ........................................................................................................6
系统功能模块图 ............................................................................................................7
系统详细设计 ..........................................................................................................................7
登录界面设计 ................................................................................................................7
系统主界面 ....................................................................................................................9
系统管理 ......................................................................................................................11
修改密码 ............................................................................................................11
基础数据管理 ..............................................................................................................13
家庭成员管理 ....................................................................................................13
收支项目管理 ....................................................................................................15
储蓄管理 .......................................................................................................................20
银行账户管理 ....................................................................................................20
理财分析 ......................................................................................................................23
查询明细 ............................................................................................................23
理财报告 ............................................................................................................27
帮助 ..............................................................................................................................27
总结: ...........................................................................................................................................28
参考文献 .......................................................................................................................................28
1 家庭理财管理
需求分析
长期以来人们使用传统的大脑记忆方式来管理家里的日常消费,这非常麻烦,靠大脑
的记忆,只能记住很短的时间,所以常常为钱不知去向而烦恼。而有时常常会想不起一些
消费记录,家里的理财很是混乱。综上所述,靠人脑记忆理财存在很大的不足。而家庭理
财系统则为家庭解决了上述问题,提供了快速,直观明了的理财过程,方便使用。家庭理
财管理系统是针对用户的要求,用计算机对自己的财务的收入、支出以及相关的各种信息,
进行记录、修改、添加、删除而设计的一种现代化管理软件。
通过需求分析,本系统需要具有以下功能:
(1)要求系统具有良好的人机界面。
(2)能够完善家庭理财管理系统的各项功能,能成功的对用户各种信息进行管理。
(3)查询、修改、删除、添加数据方便,数据的安全性和可靠性好。
(4) 系统最大限度地实现了易维护性和易操作性。
数据库概念结构设计
概念结构设计
建立系统数据模型的主要工具是实体-联系图,即 E-R 图。E-R 图的图形符号约定如
表 1-1 所示:
表 1-1 E—R 图的图形符号
图形符号 说 明
表示实体集合
表示属性
表示关系集
将属性连接到实体集或将实体集连接
到联系集
系统的 E-R 图,如图 1-1 所示,每个实体及属性如下:
家庭成员:姓名、称呼、密码、出生日期
收入记录:收入项目编号、收入项目名称、收入人员、收入金额、收入日期
支出记录:支出项目编号、支出项目名称、支出人员、支出金额、支出日期
银行信息:银行账号、银行名称、开户人、存款金额、开户日期
家庭成员
姓名
密码
称呼
出生日期
家庭成员关系 E-R 图
收入记录 E-R 图
支出记录 E-R 图
银行信息 E-R 图
银 行 信
息
银 行 账
号
开户人
存 款 金
额
银 行 名
称
开 户 日
期
收入记录
项目名称
项目编号
收入金额
收入人员
收入日期
支出记录
项目名称
支出人员
支出日期
支出金额
项目编号
属于
属于
属于 支出记录收入记录
支出记录
支出记录
图 1-1 系统总 E-R 图
数据库设计
系统数据库名为:财务管理,数据库中包括:家庭成员表(member),收入记录表(income),
支出记录表(outcome),银行信息表(bank),各个表的数据结构如下表 1-1~表 1-4 所示。
表 1-1 家庭成员表(member)的数据结构
字段名 类型 描述
name nchar(8) 姓名
call nchar(10) 称呼
pwd nchar(10) 密码
birth nchar(20) 出生日期
表 1-2 收入记录表(income)的数据结构
字段名 类型 描述
inproID smallint 收入项目编号
inproName nchar(15) 收入项目名称
call nchar(10) 收入人员
inmoney int 收入金额
indata nchar(15) 收入日期
表 1-3 支出记录表(outcome)的数据结构
字段名 类型 描述
outproID smallint 支出项目编号
outproName nchar(15) 支出项目名称
call nchar(10) 支出人员
outmoney int 支出金额
outdata nchar(15) 支出日期
表 1-4 银行信息表(bank)的数据结构
字段名 类型 描述
bankID nchar(15) 银行账号
bankName nchar(20) 银行名称
call nchar(10) 开户人
money int 存款金额
data nchar(15) 开户日期
表与表之间的关系:
图 1-2 表与表的关系图
系统功能模块设计
系统功能模块划分
具体说来,要求本系统具有以下几个功能模块:用户登录模块、用户管理模块、收入
模块、支出模块、密码管理模块、账目统计模块、报表输出模块以及查询模块。
各模块具体的需求描述如下:
(1) 用户登录模块
用户登录:验证用户的信息是否合法,以及验证用户是否为系统的合法用户。
(2)用户管理模块
在系统中主要包括添加用户、删除用户、更改用户、用户修改密码。
(3) 收支输入模块
主要实现对收入和支出记录的添加、删除、修改。
(6) 报表输出模块
主要实现对收入、支出记录的输出及打印。
(7) 查询模块
主要实现对收入、支出记录按时间按类型查询、消费提醒(实际消费额快接近预消费额)、
收入、支出记录的输出。
系统功能模块图
图 1-3 系统功能模块结构图
系统详细设计
启动 Visual Studio 2008,选择“文件”|“新建”|“项目”即命令,建立家庭理财管理应用程
序。下面介绍各窗体的程序设计。
登录界面设计
登录界面的作用就是判断用户身份的合法性。输入用户名和密码,若用户名、密码正
确,单击[登录系统]按钮,即可进入主界面,否则不能进入。登录界面效果,如图 1-4 所
示:
理财报告
家
庭
理
财
管
理
系
统
重新登录
用户登录管理
家庭成员管理
姓名
密码
修改密码
项目名称
出生日期
收支项目管理
收入项目管理
称呼
项目编号
支出项目管理
理财分析
收入日期
收入金额
收入人员
项目名称
项目编号
支出日期
支出金额
支出人员
银行名称
银行账号
开户日期
存款金额
开户人
银行信息管理
查询明细
图 1-4 登录界面
该窗体中设计了 2 个 TextBox 控件和两个 Button 控件。各个控件的名称、作用如表 4-7
所示:
表 1-5 登录界面主要控件设计
控件类型 控件名称 作用
textBox1 用户名
TextBox
textBox2 用户密码
loginbtn 登录系统
Button
exitbtn 退出系统
登录界面部分代码:
private void loginbtn_Click_1(object sender, EventArgs e)//登录
{
SqlConnection cn = new SqlConnection("data source=.;Initial Catalog=财务管理;Integrated Security=true;");
try{
();
SqlCommand cmd = new SqlCommand("select name,pwd from member where name='" + + "'
and pwd='" + + "'", cn);
();
MainForm form2 = new MainForm();
();
();
}
catch (SqlException ex){
("用户名或密码错误!请检查!" + );
}
finally{
();
}
}
当单击“退出系统”按钮时,触发exitbtn_Click事件,关闭当前窗体。代码如下:
private void exitbtn_Click_1(object sender, EventArgs e)//退出
{
();
}
另外,在登录界面出现前,Login窗体设置为消隐,代码如下:
private void timer1_Tick(object sender, EventArgs e)
{
-= ;
if ( == 0){
= false;
= ;
= 1;
= true;
= true;
= true;
= true;
= true;
= true;
= true;
}
}
在窗体加载时,启动Timer,代码如下:
private void Form1_Load(object sender, EventArgs e)
{
= true;
}
系统主界面
通过身份验证后,进入系统主界面,如图 1-5 所示,该主界面的作用就是显示用户所
拥有的所有的功能菜单项,当用户单击相应的菜单项时,打开对应的模块窗口。
图 1-5 系统主界面
系统主界面部分代码:
1、在主界面中选择【系统管理】|【修改密码】命令菜单,就会触发修改密码
ToolStripMenuItem_Click事件,进入修改密码界面。代码如下:
private void 修改密码ToolStripMenuItem1_Click(object sender, EventArgs e)
{
ModifyPwd form3 = new ModifyPwd(name);
();
}
2、在主界面中选择【重新登录】命令菜单,就会触发重新登录ToolStripMenuItem_Click
事,进入登录界面。代码如下:
private void 重新登录ToolStripMenuItem2_Click(object sender, EventArgs e)
{
Login f1 = new Login();
();
();
}
3 、 在 管 理 员 主 界 面 中 选 择 【 退 出 系 统 】 命 令 菜 单 , 就 会 触 发 退 出 系 统
ToolStripMenuItem_Click事件,整个程序退出。代码如下:
private void 退出系统ToolStripMenuItem2_Click(object sender, EventArgs e)
{
();
}
系统管理
修改密码
在主界面中选择【系统管理】|【修改密码】命令菜单,即可进入修改密码界面,如图
1-6 所示。该窗体中需要提供的信息包括:用户名、密码、确认密码。信息录入后单击“确
认”按钮,代码如下:
图 1-6 修改密码界面
在该窗体中主要设计了 4 个 TextBox 控件、2 个 Button 控件。各个控件的名称、作用
如表 5-8 所示。
表 1-6 添加管理员界面控件设计
控件类型 控件名称 作用
textBox1 用户名
textBox2 原密码
textBox3 用户新密码
TextBox
textBox4 确认密码
Button1 确认
Button
Button2 取消
1、单击“确认”按钮时触发button1_Click事件,第一步判断原密码是否正确;若正确,
第二步判断两次密码是否相同;若相同则修改密码。代码如下:
private void button1_Click(object sender, EventArgs e) //确认
{
String pwd="";
SqlConnection cn = new SqlConnection("data source=.;Initial Catalog=财务管理;Integrated Security=true;");
try{
();
SqlCommand checkCmd = new SqlCommand("select pwd from member where name='" + +
"'", cn);
SqlDataReader dr = ();
if (()){
pwd = dr[0].ToString();
}
if ( != ()){
("原密码输入错误!请重新输入!");
}
if ( == "" || == "" || == ""){
("警告:密码不能为空!");
}
if ( != ){
("警告:两次输入的密码必须相同!");
}
}
catch (SqlException ex){
();
}
finally{
();
}
try{
();
SqlCommand modifyCmd = new SqlCommand("update member set pwd='" + + "' where
name='" + + "'", cn);
();
("修改成功!");
();
}
catch (SqlException ex){
("修改失败!" + );
}
finally{
();
}
}
2、单击“取消”按钮时,将触发cancel_Click事件,关闭当前窗体。代码如下:
private void cancelbtn_Click(object sender, EventArgs e)
{
();
}
基础数据管理
家庭成员管理
在主界面中选择【基础数据管理】|【家庭成员管理】命令菜单,即可进入家庭成员管
理界面,如图 1-7 所示。
图 1-7 家庭成员管理
家庭成员添加界面主要代码:
1、窗体加载时触发Form4_Load事件,通过该事件向dataGridView控件中填入member表
的内容,代码如下:
void display()
{
();
SqlCommand cmd = new SqlCommand("select name '姓名',pwd '密码',call '称呼',birth '出生日期' from member", cn);
da = new SqlDataAdapter(cmd);
(ds, "member");
= ["member"];
}
private void Form4_Load(object sender, EventArgs e)
{
display();
();
("Text", ["member"], ["member"].Columns["姓名"].ColumnName);
("Text", ["member"], ["member"].Columns["密码"].ColumnName);
("Text", ["member"], ["member"].Columns["称呼"].ColumnName);
("Text", ["member"], ["member"].Columns["出生日期"].ColumnName);
("Text", ["member"], ["member"].Columns["姓名"].ColumnName);
("Text", ["member"], ["member"].Columns["密码"].ColumnName);
("Text", ["member"], ["member"].Columns["称呼"].ColumnName);
("Text", ["member"], ["member"].Columns["出生日期"].ColumnName);
();
}
2、点击“添加“按钮时,触发 addbtn_Click 事件,向 member 表中添加一条信息,并在
dataGridView 中显示,代码如下:
private void addbtn_Click(object sender, EventArgs e) //添加
{
String str=("insert into member
values('{0}','{1}','{2}','{3}')",(),(),(),());
SqlCommand cmd = new SqlCommand(str, cn);
try{
();
();
display();
("添加成功!");
}
catch (SqlException ex){
();
}
finally{
();
}
}
3、点击“修改“按钮时,触发 modifybtn_Click 事件,修改 member 表中的某条信息,
并在 dataGridView 中显示,代码如下:
private void modifybtn_Click(object sender, EventArgs e) //修改
{
String str = ("update member set call='" + () + "' ,pwd='" +
() + "',birth='" + () + "' where name='" + ()+"'");
SqlCommand cmd = new SqlCommand(str,cn);
try{
();
();
display();
("修改成功!");
}
catch (SqlException ex){
();
}
finally{
();
}
}
4、点击“删除“按钮时,触发 deltn_Click 事件,从 member 表中删除一条信息,并在
dataGridView 中显示,代码如下:
private void delbtn_Click(object sender, EventArgs e) //删除
{
String str = ("delete from member where name='"+ ()+"'");
SqlCommand cmd = new SqlCommand(str, cn);
try{
();
();
display();
("删除成功!");
}
catch(SqlException ex){
();
}
finally{
();
}
}
收支项目管理
在 主 界 面
中 选 择【基础数据
管理】 |【收支项目管
理 】 命令菜单,即
可 进 入收支项目管
理 界 面 , 如 图 1-8
所 示。
图 1-8 收支项目管理界面
收支项目管理界面主要代码:
窗体加载时触发Form5_Load事件,通过该事件向dataGridView控件中填入income和
outcome表的内容,代码如下:
private void displayIncome()
{
();
cmdIn = new SqlCommand("select distinct inproID '项目编号',inproName '项目名称',call '收入人员',inmoney '收
入金额',indata '收入日期' from income", cn);
da = new SqlDataAdapter(cmdIn);
(dsIn, "income");
= ["income"];
}
private void displayOutcome()
{
();
cmdOut = new SqlCommand("select distinct outproID '项目编号',outproName '项目名称',call '支出人员',outmoney
'支出金额',outdata '支出日期' from outcome", cn);
da = new SqlDataAdapter(cmdOut);
(dsOut, "outcome");
= ["outcome"];
}
private void Form5_Load(object sender, EventArgs e)
{
displayIncome();
displayOutcome();
();
("Text", ["income"], ["income"].Columns["项目编号
"].ColumnName);
("Text", ["income"], ["income"].Columns["项目名称"].ColumnName);
("Text", ["income"], ["income"].Columns["收入人员
"].ColumnName);
("Text", ["income"], ["income"].Columns["收入金额"].ColumnName);
("Text", ["income"], ["income"].Columns["收入日期
"].ColumnName);
("Text", ["outcome"], ["outcome"].Columns["项目编号
"].ColumnName);
("Text", ["outcome"], ["outcome"].Columns["项目名称
"].ColumnName);
("Text", ["outcome"], ["outcome"].Columns["支出人员
"].ColumnName);
("Text", ["outcome"], ["outcome"].Columns["支出金额
"].ColumnName);
("Text", ["outcome"], ["outcome"].Columns["支出
日期"].ColumnName);
SqlCommand cmd = new SqlCommand("select distinct call from member", cn);
SqlDataReader dr = ();
while (()){
(dr[0].ToString());
(dr[0].ToString());
}
();
}
收入项目管理界面主要代码:
1、点击“添加“按钮时,触发 button1_Click 事件,向 income 表中添加一条信息,并在
dataGridView 中显示,代码如下:
private void button1_Click(object sender, EventArgs e) //添加收入项目
{
String str = ("insert into income values('{0}','{1}','{2}',{3},'{4}')", (),
(), (), (), ());
cmdIn = new SqlCommand(str, cn);
try{
();
();
("添加成功!");
displayIncome();
}
catch (SqlException ex){
();
}
finally{
();
}
}
2、点击“修改“按钮时,触发 button2_Click 事件,修改 income 表中的某条信息,并在
dataGridView 中显示,代码如下:
private void button2_Click(object sender, EventArgs e) //修改收入项目
{
String str = ("update income set
inproName='"+()+"',call='"+()+"',inmoney='"+()+"',indata='"+date
()+"' where inproID='"+()+"'");
cmdIn = new SqlCommand(str, cn);
try{
();
();
("修改成功!");
displayIncome();
}
catch (SqlException ex){
();
}
finally{
();
}
}
3、点击“删除“按钮时,触发 button3_Click 事件,从 income 表中删除一条信息,并在
dataGridView 中显示,代码如下:
private void button3_Click(object sender, EventArgs e) //删除收入项目
{
String str = ("delete from income where inproID= '" + ()+"'");
cmdIn = new SqlCommand(str, cn);
try{
();
();
("删除成功!");
displayIncome();
}
catch (SqlException ex){
();
}
finally{
();
}
}
支出项目管理界面主要代码:
1、点击“添加“按钮时,触发 button5_Click 事件,向 outcome 表中添加一条信息,并
在 dataGridView 中显示,代码如下:
private void button5_Click(object sender, EventArgs e) //添加支出项目
{
String str = ("insert into outcome values('{0}','{1}','{2}',{3},'{4}')", (),
(), (), (), ());
cmdOut= new SqlCommand(str, cn);
try{
();
();
("添加成功!");
displayOutcome();
}
catch (SqlException ex){
();
}
finally{
();
}
}
2、点击“修改“按钮时,触发button6_Click事件,修改outcome表中的某条信息,并在
dataGridView中显示,代码如下:
private void button6_Click(object sender, EventArgs e) //修改支出项目
{
String str = ("update outcome set outproName='" + () + "',call='" +
() + "',outmoney='" + () + "',outdata='" + () + "' where
outproID='" + () + "'");
cmdOut= new SqlCommand(str, cn);
try{
();
();
("修改成功!");
displayOutcome();
}
catch (SqlException ex){
();
}
finally{
();
}
}
3、点击“删除“按钮时,触发 button7_Click 事件,从 outcome 表中删除一条信息,并
在 dataGridView 中显示,代码如下:
private void button7_Click(object sender, EventArgs e) //删除支出项目
{
String str = ("delete from outcome where outproID= '" + ()+"'");
cmdOut = new SqlCommand(str, cn);
try{
();
();
("删除成功!");
displayOutcome();
}
catch (SqlException ex){
();
}
finally{
();
}
}
储蓄管理
银行账户管理
在主界面中选择【储蓄管理】|【银行账户管理】命令菜单,即可进入银行账户管理界
面,如图 1-9 所示。
图1-9 银行账户管理界面
银行账户管理界面主要代码:
1、窗体加载时触发Form6_Load事件,通过该事件向dataGridView控件中填入bank表的
内容,代码如下:
void display()
{
();
SqlCommand cmd = new SqlCommand("select bankID '银行账号',bankName '银行名称',call '开户人',money '存
款金额',data '开户日期'from bank", cn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
(ds, "bank");
= ["bank"];
}
private void Form6_Load(object sender, EventArgs e)
{
display();
();
("Text", ["bank"], ["bank"].Columns["银行账号"].ColumnName);
("Text", ["bank"], ["bank"].Columns["银行名称"].ColumnName);
("Text", ["bank"], ["bank"].Columns["开户人"].ColumnName);
("Text", ["bank"], ["bank"].Columns["存款金额"].ColumnName);
("Text", ["bank"], ["bank"].Columns["开户日期"].ColumnName);
SqlCommand cmd = new SqlCommand("select distinct call from member", cn);
SqlDataReader dr = ();
while (()){
(dr[0].ToString());
}
();
}
2、点击“添加“按钮时,触发 button1_Click 事件,向 bank 表中添加一条信息,并在
dataGridView 中显示,代码如下:
private void button1_Click(object sender, EventArgs e) //添加记录
{
String str = ("insert into bank values('{0}','{1}','{2}',{3},'{4}')", (),
(), (), (), ());
SqlCommand cmd = new SqlCommand(str, cn);
try{
();
();
("添加成功!");
display();
}
catch (SqlException ex){
();
}
finally{
();
}
}
3、点击“修改“按钮时,触发button2_Click事件,修改bank表中的某条信息,并在
dataGridView中显示,代码如下:
private void button2_Click(object sender, EventArgs e) //修改记录
{
String str = ("update bank set bankName='" + () + "',call='" +
() + "',money='" + () + "',data='" + () + "' where bankID='"
+ () + "'");
SqlCommand cmd = new SqlCommand(str, cn);
try{
();
();
("修改成功!");
display();
}
catch (SqlException ex){
();
}
finally{
();
}
}
4、点击“删除“按钮时,触发 button3_Click 事件,从 bank 表中删除一条信息,并在
dataGridView 中显示,代码如下:
private void button3_Click(object sender, EventArgs e) //删除记录
{
String str = ("delete from bank where bankID= '" + () + "'");
SqlCommand cmd = new SqlCommand(str, cn);
try{
();
();
("删除成功!");
display();
}
catch (SqlException ex){
();
}
finally{
();
}
}
理财分析
查询明细
在主界面中选择【理财分析】|【查询明细】命令菜单,即可进入查询明细管理界面,
如图 1-10 所示。
图1-10 查询明细管理界面
查询明细管理界面主要代码:
1、窗体加载时触发Form7_Load事件,代码如下:
private void Form7_Load(object sender, EventArgs e)
{
String strIn = "select distinct inproID '项目编号',inproName '项目名称',call '收入人员',inmoney '收入金额',indata
'收入日期' from income";
String strOut = "select distinct outproID '项目编号',outproName '项目名称',call '支出人员',outmoney '支出金额',outdata
'支出日期' from outcome";
displayIncome(strIn);
displayOutcome(strOut);
();
SqlCommand cmd = new SqlCommand("select distinct call from member", cn);
SqlDataReader dr = ();
while (())
{
(dr[0].ToString());
(dr[0].ToString());
}
();
}
private void displayIncome(String str)
{
();
SqlCommand cmd = new SqlCommand(str, cn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
(dsIn, "income");
= ["income"];
}
private void displayOutcome(String str)
{
();
SqlCommand cmd = new SqlCommand(str, cn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da = new SqlDataAdapter(cmd);
(dsOut, "outcome");
= ["outcome"];
}
2、点击“查询“按钮时,触发 button1_Click 事件,查询满足条件的记录,并在 dataGridView
中显示,代码如下:
private void button1_Click(object sender, EventArgs e) //日常收入查询
{
String str = "select distinct inproID '项目编号',inproName '项目名称',call '收入人员',inmoney '收入金额',indata '
收入日期' from income";
if ()
{
str =str+ " where call='" + ()+"'";
if ()
{
str =str+ " and indata between '" + ("yyyy-MM-dd") + "' and '" +
("yyyy-MM-dd")+"'";
}
}
else if (){
str += " where indata between '" + ("yyyy-MM-dd") + "' and '" +
("yyyy-MM-dd") + "'";
}
else{
("您未选择任何查询条件,请选择!");
}
SqlCommand cmd = new SqlCommand(str, cn);
try{
();
();
displayIncome(str);
}
catch (SqlException ex){
();
}
finally{
();
}
}
3、点击“查询“按钮时,触发 button2_Click 事件,查询满足条件的记录,并在 dataGridView
中显示,代码如下:
private void button2_Click(object sender, EventArgs e) //日常支出查询
{
String str = "select distinct outproID '项目编号',outproName '项目名称',call '支出人员',outmoney '支出金额',outdata
'支出日期' from outcome";
if (){
str = str + " where call='" + () + "'";
if (){
str = str + " and outdata between '" + ("yyyy-MM-dd") + "' and '" +
("yyyy-MM-dd") + "'";
}
}
else if (){
str += " where outdata between '" + ("yyyy-MM-dd") + "' and '" +
("yyyy-MM-dd") + "'";
}
else{
("您未选择任何查询条件,请选择!");
}
SqlCommand cmd = new SqlCommand(str, cn);
try{
();
();
displayOutcome(str);
}
catch (SqlException ex){
();
}
finally{
();
}
}
理财报告
在主界面中选择【理财分析】|【理财报告】命令菜单,即可进入理财报告管理界面,
如图 1-11 所示。
图1-11 理财报告界面
理财报告管理界面主要代码:
1、窗体加载时触发Report_Load事件,代码如下:
private void Report_Load(object sender, EventArgs e)
{
ReportDocument doc = new ReportDocument();
("F:\\数据库课程设计\\家庭财务管理系统\\家庭财务管理系统\\");
= doc;
}
帮助
在主界面中选择【帮助】|【帮助】命令菜单,即可进入帮助界面,如图 1-12 所示。
总结:
这次的课程设计涉及到了很多这学期刚学到的一些东西,换个角度来看,这刚好是检
验我这一学期以来所学的知识。在开发这个系统的过程中,碰到了不少问题,有些是大的,
而有些是很小的问题,只是自己没有仔细的看清楚,没有注意细节问题。不过在解决了问
题后,却是不一样的心情,首先是让我放松了,毕竟是难题解决了。第二是充实了很多,
因为在解决了问题的同时,我又学到了一点。
在设计过程中,我首先考虑到了界面的友好性,并在界面设计时不采用烦琐的细节,
使界面简单、清晰,便于操作。但由于是第一次做系统,可能在某些方面做的还不够好,
考虑的不够全面,实际应用中有些功能不到位,但我将不断提高自己,争取今后能编写出
应用性较强的管理系统。
通过这次课程设计,对应用 C# winform 开发设计,我付出了大量的时间,但是,我得
到的收获远远不是这些时间可以衡量的,它将是我终生的财富,必将给我今后的学习和工
作带来更多的收益。通过对此课题的开发,使我对用 C# winform 开发系统有了一个比较清
楚的认识,体会到理论和实践的重要性。由于自己的分析设计和程序经验不足,该系统设
计和实现过程中,还有许多没有完善的地方,比如用户界面设计不够美观,异常出错处理
比较差等多方面问题,这些都有待进一步完善和提高。对于文中出现的不足和系统中出现
的问题敬请老师指导。
参考文献
[1] 王珊,萨师煊. 数据库系统概论(第四版).北京:高等教育出版社,2006
[2] 段德亮等.C#课程设计案例精编.北京:清华大学出版社,2008
[3] 李容等.Visual C# 2008 开发技术详解. 北京:电子工业出版社,2008