【C#重构】——充值
教师端功能:实现对学生卡号的充值
用到的表:student_info 查询相应卡号学生信息;recharge_info充值记录表
recharge_info充值记录表
UI
public partial class frmTRecharge : Form
{
//窗体默认
public frmTRecharge()
{
InitializeComponent();
}
//点击注册
private void btnRecharge_Click(object sender, EventArgs e)
{
if (txtCardNO.Text.Trim ()=="" || txtRecharge.Text.Trim()=="")
{
MessageBox.Show ("请把信息填写完整");
}
//实例化实体层的studnetinfo类和rechargeinfo类
Entity.StudentInfo student = new Entity.StudentInfo();
Entity.RechargeInfo money = new Entity.RechargeInfo();
money.UserID = Convert.ToInt32(txtCardNO.Text.Trim());
money.Addmoney = Convert.ToInt32(txtRecharge.Text.Trim());
student.UserID = money.UserID;
DataTable table;
//查询student表的UserID
DataTable table1;
//DataTable table2;
//实例化外观层
Facade.RechargeFacade facade = new Facade.RechargeFacade();
//外观层的查询UserID
table1 = facade.SelectStudentFacade(student);
//判断查找到用户输入的UserID是否在使用状态
if (table1.Rows[0][7].ToString().Trim()=="正使用")
{
//如果卡号的状态是正在使用的haul,那就找到status和balance返回回来
//cash 暂存一个变量等待和充值的前进行加和,状态写在客户端窗体上
//存在问题:如果这个卡号涉及到是否结账,还需要增加什么内容?
//如果这个卡号已经注销了怎么进行判断?
if (table1.Rows[0][4].ToString()!="")
{
//查到的状态赋值到recharge表的status列
student.Status=table1.Rows[0][4].ToString();
//查到的学生余额暂时存放在balance中
student.Balance= Convert.ToInt32(table1.Rows[0][2].ToString());
int a = student.Balance;
int b = money.Addmoney;
//增加表信息内容
money.Status = student.Status;
table = facade.InsertRechargeFacade(money);
int c = a + b;
student.Balance = c;
//table2 = facade.UpdateStudentFacade(student);
//更新student表之后得到的new balance 和固定还是临时用户 显示在在窗体上
txtBalance.Text = Convert.ToString(student.Balance);
cmbState.Text = student.Status;
MessageBox.Show("充值成功");
}
else
{
MessageBox.Show("卡号不存在");
}
}
else
{
if (table1.Rows[0][7].ToString().Trim() == "已经注销")
{
MessageBox.Show("卡号已经注销");
}
}
}
}
D层
public class RechargeDAL:IDAL.IRechargeIDL
{
/// <summary>
/// 查询学生表的初始注册钱+学生注册状态
/// </summary>
/// <param name="student"></param>
/// <returns></returns>
public DataTable SelectStudent(Entity.StudentInfo student)
{
SQLHelper sqlHelper = new SQLHelper();
SqlParameter[] sqlParams = { new SqlParameter("@UserID", student.UserID) };
String sql = "Select * from student_info where userID =@UserID ";
DataTable table = sqlHelper.ExecuteQuery(sql, sqlParams, CommandType.Text);
return table;
}
public DataTable InsertRecharge(Entity.RechargeInfo money)
{
DateTime date = DateTime.Now;
SQLHelper sqlHelper = new SQLHelper();
SqlParameter[] sqlParams = { new SqlParameter("@CardNO",money.UserID),
new SqlParameter("@Date",date.ToShortDateString()),
new SqlParameter("@Status",money.Status),
new SqlParameter("@Addmoney",money.Addmoney)};
String sql = "Insert into recharge_info(userID,addmoney,date,status) Values(@CardNO,@Addmoney,@Date,@Status)";
DataTable table = sqlHelper.ExecuteNonQuery(sql,sqlParams,CommandType.Text);
return table;
}
IDAL层
public interface IRechargeIDL
{
//查询student表,目的返回balance,state,status
DataTable SelectStudent(Entity.StudentInfo student);
//增加信息(卡号 status addmoney)到recharge表,
DataTable InsertRecharge(Entity.RechargeInfo money);
//更新student表的balance
//DataTable UpdateStudent(Entity.StudentInfo student);
}
颗粒归仓,继续往后走,,,
还没有评论,来说两句吧...