说明:程序是在.NET 4.0下用C#语言编写
COM组件也是用C#编写
转载请标明出处:http://blog.csdn.net/u012027907
一. 功能需求:
1. 能存款
2. 能取款
3. 能查询余额及交易明细
4. 能转账
5. 能修改密码
二. 总体设计计:
1. 客户端设计:
(1) Admin类(登录窗体)
(2) MainForm类(主窗体)
(3) WithDraw类(取款窗体)
(4) Deposit类(存款窗体)
(5) TransForm类(转账窗体)
(6) Query类(查询余额及明细窗体)
(7) ModifyPwd类(修改密码窗体)
(8) OpenAccountInfo类(开户窗体)
2. COM组件端的函数设计:
(1) 连接数据库函数组
A. ReadSqlConnString()(读取连接字符串)
B. GetConnection()(打开与数据库的连接)
C. Con_Close()(关闭与数据库的连接)
D. GetDataSet()(将查询结果表填充在DataSet中)
(2) Proc_Admin()(用户登录验证)
(3) Manager_Admin(管理员登录验证)
(4) WhithDraw()(取款)
(5) Deposit()(存款)
(6) TransForm()(转账)
(7) Query()(查询)
(8) ModifyPwd()(修改密码)
(9) Proc_CreateAccount()(开户)
3. 数据库设计:
(1) 表设计
userInfo(用户信息表)
cardInfo(卡信息表)
transInfo(交易信息表)
manager(管理员信息表)
(2) 增加约束条件
如:设置主键
电话号码必须为数字
身份证号为18位
存款类型:活期、定期及定活两便三者之一
等约束。
(3) 创建存储过程
(proc_createAccount)开户存储过程
(proc_takeMoney)存取款存储过程
(proc_randCardNo)随机产生卡号存储过程
(proc_tranMoney)转账存储过程
三. 详细设计:
1. 客户端设计:
(1) 登录窗体
(2)主窗体
(3)取款窗体
(4)存款窗体
(5)查询余额及明细窗体
(6)修改密码窗体
(7)开户窗体
2.COM组件端的函数设计:
(8) 连接数据库函数组
A. ReadSqlConnString()(读取连接字符串)
#region 读取连接字符串
///<summary>
///
///</summary>
public static string ReadSqlConString()
{
StreamReader sr = new StreamReader("DatabaseLinkString.ini");
string DatabaseLinkString = "";
while (!sr.EndOfStream)
{
DatabaseLinkString += sr.ReadLine();
}
sr.Close();
return DatabaseLinkString;
}
#endregion
B.GetConnection()(打开与数据库的连接)
#region 打开与数据库的连接
///<summary>
///打䨰开a与®?数ºy据Y库a的Ì?连¢?接¨®
///</summary>
///<returns>返¤¦Ì回?SqlConnection对?象¨®</returns>
public static SqlConnection GetConnection()
{
try
{
// StrConn = ReadSqlConString1(ID,Pwd);
StrConn = ReadSqlConString();
conn = new SqlConnection(StrConn); //用®?SqlConnection对?
if (conn.State != ConnectionState.Open)
conn.Open(); //打开与数据库的连接¨®
return conn; //返¤¦Ì回?SqlConnection对?象¨®
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
#endregion
C.Con_Close()(关闭与数据库的连接)
#region 关?闭À?数ºy据Y库a连¢?接¨®
///<summary>
///关?闭À?数ºy据Y库a连¢?接¨®
///</summary>
public void Con_Close()
{
if (conn.State == ConnectionState.Open) //判D断?数ºy据Y库a是º?否¤
{
conn.Close(); //关?闭À?数ºy据Y库a连¢?接¨®
conn.Dispose(); //释º¨ª放¤?My_con
}
}
#endregion
D.GetDataSet()(将查询结果表填充在DataSet中)
#region 执¡ä行DSQL语®?句?,返¤¦Ì回?DataSet对?象¨®
/// <summar