侯世中 江連海 宋傳磊
摘 要:改革開放以來,中國的社會經濟得到了長足的發展,百姓的收入也有了大幅度的提高,不少家庭把剩余的資金用于購買理財產品。在這種背景下,使用計算機軟件來管理家庭的日常理財信息,顯得尤為重要。
關鍵詞:家庭理財系統;數據;用戶
引言
家庭理財系統采用了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