C#模拟银行转账系统
来源:互联网 发布:excel表格两列数据匹配 编辑:程序博客网 时间:2024/04/30 02:55
类库:BankModel
创建类:Bank
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BankModel
{
public class Bank
{
private string A_id; //账号
public string A_id1
{
get { return A_id; }
set { A_id = value; }
}
private string A_pwd; //密码
public string A_pwd1
{
get { return A_pwd; }
set { A_pwd = value; }
}
private string A_host; //账户人姓名
public string A_host1
{
get { return A_host; }
set { A_host = value; }
}
private string A_state; //1 可用 2挂失 3冻结
public string A_state1
{
get { return A_state; }
set { A_state = value; }
}
private string A_left; //账户内金额
public string A_left1
{
get { return A_left; }
set { A_left = value; }
}
}
}
类库:BankDAL 引用BankModel.dll文件
类:DALBank
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace BankDAL
{
public class DALBank
{
public static int Bankpro(string proName, SqlParameter[] pars) {
//Sql脚本
return DBHelper.CreateInstance().ExecPro(proName, pars);
}
}
}
类:DBHelper
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace BankDAL
{
internal class DBHelper
{
private SqlConnection con=null;
private SqlCommand cmd = null;
private static DBHelper dbh = null;
private DBHelper() {
con = new SqlConnection(ConfigurationManager.ConnectionStrings["SqlConnectionBank"].ConnectionString);
}
public static DBHelper CreateInstance()
{
if (dbh==null)
{
dbh = new DBHelper();
}
return dbh;
}
/// <summary>
/// 执行T-SQL存储过程
/// </summary>
/// <param name="proName">存储过程名</param>
/// <param name="pars">参数列表</param>
/// <returns></returns>
public int ExecPro(string proName, SqlParameter[] pars)
{
//命名对象
cmd = new SqlCommand();
//连接
cmd.Connection = con;
//类型
cmd.CommandType = CommandType.StoredProcedure;
//过程名
cmd.CommandText = proName;
//参数
cmd.Parameters.AddRange(pars);
try
{
con.Open();
cmd.ExecuteNonQuery();
//返回首参数值
return Convert.ToInt32(pars[0].Value);
}
catch (Exception)
{
//系统异常
return -1;
}
finally {
con.Close();
}
}
/// <summary>
/// 执行Sql脚本
/// </summary>
/// <param name="strsql"></param>
/// <returns></returns>
public int EditSql(string strsql) {
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SqlConnectionBank"].ConnectionString))
{
cmd = new SqlCommand(strsql, conn);
try
{
con.Open();
//返回受影响行数
return cmd.ExecuteNonQuery();
}
catch (Exception)
{
//系统异常
return -1;
}
}
}
}
}
创建类库:BankBLL 引用:BankDAL.dll文件
类:BLLBank
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using BankDAL;
namespace BankBLL
{
public class BLLBank
{
public static int BankLogin(string id, string pwd) {
//配置参数s
SqlParameter[] pars = new SqlParameter[3];
pars[0] = new SqlParameter("@flag", SqlDbType.Int);
pars[0] .Direction=ParameterDirection.Output;
//pars[0].Value = 0;
pars[1] = new SqlParameter("@id", SqlDbType.Char, 9);
pars[1].Value = id;
pars[2] = new SqlParameter("@pwd",SqlDbType.Char,6);
pars[2].Value = pwd;
return DALBank.Bankpro("pro_AccountLogin", pars);
}
public static int BankTran(string fromId, string toId,double money) {
SqlParameter[] pars = new SqlParameter[4];
pars[0] = new SqlParameter("@flag", SqlDbType.Int);
pars[0].Direction = ParameterDirection.Output;
pars[1] = new SqlParameter("@fromId", SqlDbType.Char, 9);
pars[1].Value = fromId;
pars[2] = new SqlParameter("@toId", SqlDbType.Char, 9);
pars[2].Value = toId;
pars[3] = new SqlParameter("@money", SqlDbType.Money);
pars[3].Value = money;
return DALBank.Bankpro("pro_AccountTranTest",pars);
}
}
}
类库:BankUIL 引用:BankBLL.dll文件
窗体:FrmLogin
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BankBLL;
namespace BankUIL
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// 登录
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnLogin_Click(object sender, EventArgs e)
{
string id = this.mktbID.Text;
string pwd = this.mktbPwd.Text;
//正则验证
int Loginresult = BLLBank.BankLogin(id, pwd);
switch (Loginresult)
{
case -1:
{
MessageBox.Show("系统异常!");
break;
}
case 0:
{
this.grbLogin.Enabled = false;
this.grbTran.Enabled = true;
break;
}
case 1:
{
MessageBox.Show("用户名或密码错误!");
break;
}
case 2:
{
MessageBox.Show("账号被锁定!");
break;
}
}
}
/// <summary>
/// 转账
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnTran_Click(object sender, EventArgs e)
{
string fromId = this.mktbID.Text;
string toId = this.mktbtoId.Text;
double money = (double)this.nudTranMoney.Value;
int resultTran = BLLBank.BankTran(fromId,toId,money);
switch (resultTran)
{
case -1:
{
MessageBox.Show("系统异常!");
break;
}
case 0:
{
MessageBox.Show("转账成功!");
break;
}
case 1:
{
MessageBox.Show("同一账户不能转账!");
break;
}
case 2:
{
MessageBox.Show("转入账号不存在!");
break;
}
case 3:
{
MessageBox.Show("转出账户余额不足!");
break;
}
case 4:
{
MessageBox.Show("转入账号不能使用!");
break;
}
case 5:
{
MessageBox.Show("数据库异常!");
break;
}
}
}
}
}
配置文件:App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="SqlConnectionBank" connectionString="server=192.168.20.48;database=BankDB;uid=admin;pwd=master"/>
</connectionStrings>
</configuration>
- C#模拟银行转账系统
- 模拟银行转账信息
- 模拟银行账户转账系统(简单模拟)
- 实践项目七:模拟银行转账系统(python+mysql)
- Android——简单模拟银行转账
- Java模拟银行转账(操作事务)
- Python 操作MySQL实例之银行转账模拟
- JDBC学习笔记(五):模拟银行转账
- python操作MySQL 模拟简单银行转账操作
- 模拟一个银行转账流程的Python小程序
- MySQL数据库事务实例(模拟银行转账)
- python操作MySQL 模拟简单银行转账操作
- C#银行开户模拟
- 银行模拟系统(2)
- 银行系统模拟
- 模拟银行管理系统
- -模拟银行系统-
- 模拟银行储蓄系统
- 欢迎使用CSDN-markdown编辑器
- 51Nod-1117-聪明的木匠
- Kafka实战-简单示例
- [博弈 DP] BZOJ1783: [Usaco2010 Jan]Taking Turns
- 插入排序实现(1)
- C#模拟银行转账系统
- window下MongoDB副本集和分片高可靠性部署
- Linux开启tomcat的gc日志
- 10.31
- jvm调优个人总结
- idea中mybatis-generator maven 配置
- 在线程里面控制事务的提交和回滚
- 过滤器中注入spring管理的对象
- 关于wechat-php-sdk token验证失败的解决