一、项目要求:
创建一个ATM自动取款机终端系统
二、项目需求:
1.数据信息存储在sql server数据库之中
2.通过终端系统进行数据的操作
三、项目实现:
1.sql server数据库与表的创建
通过sql server 2014创建数据库ATM,在数据库中分别创建个人信息表、存储金额表、取款金额表、交易信息表。
数据库建立如下图所示:
个人信息表(tb_customer)
存储金额表(tb_saving)
取款金额表(tb_current)
交易信息表(tb_transaction)
2.终端系统进行数据的操作
1)账户登陆界面的设计
界面效果展示:
主要代码实现:
A.账户栏只能输入四位数之内的数字
/*
IsNumber:判断输入按键是否是数字,(char)8是退格键的键值
可允许用户敲退格键对数字进行修改,其他键则不能输入到文本框
*/
if(!(Char.IsNumber(e.KeyChar)) && e.KeyChar != (char)8)
{
e.Handled = true;//经过判断为数字,可以输入
}
B.数据库的连接与打开
string con = "Data Source=YANG\\SQLEXPRESS;Initial Catalog=ATM;User ID=sa;password=yang;";
SqlConnection mycon = new SqlConnection(con);
mycon.Open();
C.验证账户,如果正确则添加一条本账户的交易信息表(tb_transaction)留待下面使用
string sql1 = "insert into tb_transaction values('" + v1 + "','" + dateTime + "','" + v2 + "','" + v3 + "')";
SqlCommand mycmd1 = new SqlCommand(sql1, mycon);
SqlDataReader dr = mycmd1.ExecuteReader();
dr.Close();//一定要及时关闭,不然可能会出现内存泄漏或者后续程序出现错误
2)选择账户存取款类型界面的设计
界面效果展示:
主要代码实现:
A.在命名空间下定义一个类,将连接状态、账户、Pin、交易类型定、账户余额以及取款金额定定义成静态全局变量,方便后面的使用
public class Temp
{
public static int account = 0; //账号
public static SqlConnection mycon; //连接状态
public static string type = null; //账户交易类型(存储、取款)
public static int balance = 0; //账户余额
public static int amount = 0; //取款金额
}
3)查看余额、选择取款金额类型界面的设计
界面效果展示:
主要代码实现:
A.鼠标事件,当鼠标经过BACK之上时,BACK颜色改变
//鼠标在linkLable控件之上时,控件颜色
private Color c;
private void linkLabel1_MouseHover(object sender, EventArgs e)
{
c = linkLabel1.BackColor;
linkLabel1.BackColor = Color.Red;
}
private void linkLabel1_MouseLeave(object sender, EventArgs e)
{
linkLabel1.BackColor = c;
}