C#机房重构之实时更新余额

实时更新余额

根据自己设置的基本数据表查询用卡用户的基本数据,判断每小时的单价。

DataTable dtbasic = loginfacade.InquiryBasicDataInfo(basic);//调用查询基础数据的方法

            //判断用户类型,如果时会员卡就返回会员卡的单价,否则就执行非会员卡的单价

            if (dtcard.Rows[0]["CardType"].ToString() == "会员卡")

            {

                lblcash.Text = dtbasic.Rows[0]["Rate"].ToString();

            }

            else

            {

                lblcash.Text = dtbasic.Rows[0]["tmpRate"].ToString();

            }

给最初的消费金额设定初值为0

labSpendCash.Text = "0";//定义消费金额默认为0

添加一个计时器,计算上机的时间,将上机时间转化为分钟,把计算出的时间赋值给消费时间

 

计算消费时间,我这里设定的是以每分钟为单位收取金额,所以用单价/60*消费时间,实时更新余额。

 private void timer2_Tick(object sender, EventArgs e)

        {

            TimeSpan ts1 = new TimeSpan(Convert.ToDateTime(FrmLogin.onDatetime).Ticks);

            TimeSpan ts2 = new TimeSpan(Convert.ToDateTime(DateTime.Now.ToLongTimeString()).Ticks);

            TimeSpan ts = ts1.Subtract(ts2).Duration();//计算上机时长

            ontime = Convert.ToDouble(ts.Days * 24 * 60 + ts.Hours * 60 + ts.Minutes);//将上机时间转化为分钟

            labSpendTime.Text = ontime.ToString();//动态显示时间

 //计算金额

            if (dtCardInfo.Rows[0]["CardType"].ToString().Trim() == "会员卡")

            {

                double rate = Convert.ToDouble(dtBasic.Rows[0]["Rate"]);

                costSpend = (rate / 60) * ontime;

            }

            else

            {

                double tmprate = Convert.ToDouble(dtBasic.Rows[0]["tmpRate"]);

                costSpend = (tmprate / 60) * ontime;

            }

            labSpendCash.Text = costSpend.ToString();

 

自动下机

用text事件来检测用户的余额,随着text的改变,当用户的余额等于五时给出提示,余额为0时强制下机,关闭系统。


 

private void lbblance_TextChanged(object sender, EventArgs e)

        {

            if (Convert.ToDouble(lbblance.Text.Trim()) == 5.0)

            {

                Model.ShowMsg show = new Model.ShowMsg();

                show.ShowMessageBoxTimeout("余额不足,请充值!", "温馨提示", MessageBoxButtons.OK, 2000);

            }



            else if (Convert.ToDouble(lbblance.Text.Trim()) <= 0.0)

            {

                Model.ShowMsg show = new Model.ShowMsg();

                show.ShowMessageBoxTimeout("余额不足,即将自动下机", "温馨提示", MessageBoxButtons.OK, 2000);

                button3.PerformClick();

            }

这里用的提示框是自动关闭,以秒为单位,自己可以根据需求设置。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值