基于C#.NET的家庭理财系统的设计与实现

2014-07-09 02:06侯世中江连海宋传磊
科技创新与应用 2014年20期
关键词:数据用户

侯世中 江连海 宋传磊

摘 要:改革开放以来,中国的社会经济得到了长足的发展,百姓的收入也有了大幅度的提高,不少家庭把剩余的资金用于购买理财产品。在这种背景下,使用计算机软件来管理家庭的日常理财信息,显得尤为重要。

关键词:家庭理财系统;数据;用户

引言

家庭理财系统采用了Visual Studio 2008作为开发工具,数据存储使用微软公司的Access数据库。本文主要介绍了理财系统的相关技术,以及系统的需求分析、系统设计和系统实现。

1 相关技术

在本系统的设计中用到了ADO.NET技术。ADO.NET是.NET Framework中提供了专门用来处理数据的技术。通过该技术,可以访问SQL Server、ODBC、OLEDB、XML等的数据源,并检索、操作和更新这些数据源中的数据。

ADO.NET是一个介于数据源和数据使用者之间的转换器,ADO.NET接收使用者语言中的命令,如连接数据库、返回数据集等,然后将这些命令转换成可以在数据源中正确执行的语句。

2 需求分析

2.1 主要功能:家庭财务系统主要包括对用户的管理,收入支出的管理、查询,收入支出分类的管理查看,银行账户的管理、查询,以及生成报表。用户需要从数据库中获取信息,这些信息包括用户信息、收支账目信息、账户信息、分类信息。

2.2 技术分析:采用C#+Access技术可以很好的实现其全部功能,而且后期的维护也非常方便。

3 系统设计

3.1 登陆窗口设计

在登录窗口中不仅可以进行用户登录,也可以用户注册、删除用户。因此在该窗口中添加了一个TabControl控件。该控件用于显示多个选项卡,选项卡中可以包含图片和其它控件。为了达到用户登录、注册、删除,在这里一共用到了三个选项卡,分别命名为loginPage、addPage、deletePage。

3.2 用户主窗口

主窗口是整个系统最重要的部分,运行家庭财务管理信息系统之后,用户登录成功之后出现的第一个窗口就是MainForm.cs窗体。该窗体会以列表的形式显示指定分类下的收支账目。单击该窗体菜单栏中的菜单项或窗体下方的功能按钮,都会完成相应的功能或者启动相应的窗体。

3.3 添加收支功能

用户可以选择日期、种类、分类名称、填写金额与备注,单击“确定”按钮实现添加收支功能。另外,在该窗体上还有一个“计算器”按钮,点击该按钮就可以调用计算器功能。

3.4 理财报告功能

理财报告主要包含:月理财和年理财报告两个部分;其中,用户可以点击月理财选项卡来查看不同月份的收入与支出的详细账目;同样,也可以选择年理财选项卡来查看不同年份的收入与支出的详细账目,并能给出详细的财务分析。

3.5 收支理财分析

用户可以选择日期、种类、分类名称、填写金额与备注,单击“确定”按钮实现添加收支功能。也可以将所有的收入金额和所有的支出金额进行统计,向用户绘制出一个饼形图,并在饼形图上显示出收入和支出所占的百分比。

4 系统实现

在本系统中,涉及到的实现模块很多,这里只是讲解系统中的几个关键模块的实现,具体如下。

4.1 数据库的连接功能

本系统连接的是Access数据库,所以需要引入命名空间using System.Data.Oledb。Access数据库是一种桌面级的数据库,连接Access数据库时,必须指定数据库文件的路径。连接字符串为:

string strCon = “provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + “./cx.mdb”;。

在MainForm.cs中有一个getConnection()方法用来获得数据库连接。关键代码如下:

public static OleDbConnection getConnection()

{

if (oledbCon == null)

{

oledbCon=newOleDbConnection(strCon);

oledbCon.Open();

}

return oledbCon;

}

4.2 收入图表功能的实现

该功能由ChartOfIncome_Load()方法实现。在该方法中有两个重点,一是查询语句的创建,另外就是将查询到的数据绑定到chart1控件中。这里的查询语句为“”select 分类名称,sum(金额) as 金额 from accounts where 种类='收入' and 用户名='“ + Program.currentUser + ”' group by 分类名称“;”。然后创建OledbDataReader对象dr来获取数据,遍历读取数据库表中行信息,并绑定到chart1控件中。在绑定时用到了数据点函数DataBindXY(),代码为:chart1.Series[“Series1”].Points.DataBindXY(dr, “分类名称”, dr, “金额”)。

4.3 系统主窗体信息显示

系统主窗体是在MainForm.cs中实现的,其中有一个非常重要的方法:FillDataGrid()。该方法是把数据填充到DataGrid控件中,并返回该数据。实现该方法的步骤如下:

(1)调用getConnection()方法,打开数据库连接。

(2)利用DataAdapter将数据填充到DataSet。使用DataAdapter属性指定需要执行的SQL语句,再通过DataAdapter对象的Fill()方法,即可将返回的数据存放到DataSet数据集中。

(3)利用SetDataBinding()方法将数据填充到DataGrid控件中。关键代码如下:

if (oledbCon.State == ConnectionState.Closed)

oledbCon.Open();

Console.WriteLine(sql);

OleDbDataAdapter adapter = new OleDbDataAdapter(sql, oledbCon);

DataSet ds = new DataSet(dname);

adapter.Fill(ds, dname);

dg.SetDataBinding(ds, dname);

return ds;

参考文献

[1]范盛荣.Visual C# 2008控件使用范例详解[M].北京:清华大学出版社,2010.

[2]郑耀东,等.C#从入门到实践[M].北京:清华大学出版社,2009.

[3]张海藩,倪宁.软件工程(第3版)[M].北京:人民邮电出版社,2010.endprint

猜你喜欢
数据用户
关注用户
公路工程试验检测存在的问题及措施
一种借助数据处理构建的智能食堂管理系统
数据化艺术的生成探究
浅谈计量自动化系统实现预购电管理应用
关注用户
关注用户
Camera360:拍出5亿用户
100万用户
如何获取一亿海外用户