前言
本来以为充值会是一个很简单的窗体,原来我以为的仅仅是我以为。毕竟一个界面里只有2个button,3个textbox,2个label控件。正所谓麻雀虽小却五脏俱全啊,是我低估了充值的内涵。不过一步一步分析,其实也不是很难。下面我将充值分为四层来介绍。
充值——第一层
第一层的精华在于从数据库Student表中找是否有输入的卡号,然后将结果返回给客户端。
acade.frmRechargeFacade facade = new Facade.frmRechargeFacade();
Entity.StudentInfo userid = new Entity.StudentInfo();
userid.CardNo = Convert.ToInt32(txtCardNo.Text);
DataTable table = facade.SelectUser(userid);
if (table.Rows.Count==0)
{
MessageBox.Show("没有这个账户", "温馨提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
txtCardNo.Text = "";
txtCardNo.Focus();
}
充值——第二层
第二层的精华在于将卡号和充值的金额增加到数据库Recharge表中,返回给客户端一个充值成功的消息。
Entity.ReCharge recharge = new Entity.ReCharge();
recharge.CardNo = Convert.ToInt32(txtCardNo.Text);
recharge.AddMoney = Convert.ToDecimal(txtRechMoney.Text);
recharge.Date = DateTime.Today;
recharge.Time = DateTime.Now;
bool flag1 = facade.AddMessage(recharge);
if (flag1)
{
MessageBox.Show("充值成功!", "温馨提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
充值——第三层
第三层的精华在于更新Student表中的金额。现在金额=充值金额+原来金额。
decimal cash=Convert.ToDecimal(table.Rows[0][7]);
userid.Cash = Convert.ToDecimal(txtRechMoney.Text) + cash;
bool flag = facade.UpdateData(userid);
充值——第四层
将数据显示到textbox中。
txtMessage.Text = "充值卡号:" + txtCardNo.Text + "\r\n本次充值金额:" + txtRechMoney.Text + "\r\n上次卡内余额:" + cash + "\r\n现在卡内余额:" + userid.Cash + "\r\n充值日期:" + DateTime.Now;
感受
其实第一层一条线走完之后,后边的就特别简单,只有个别需要思考的问题。遇到大问题,去一个一个的拆分成小问题,大问题也就会变成一个一个简单的问题。每天进步一点点。