C#机房重构动态下机

利用timer控件进行动态下机

之前的代码是:

 if (txtType.Text.Trim() == "会员")
            {
                double consume = consu * Convert.ToDouble(table.Rows[0]["VipRate"]);
                txtCash.Text = (Convert.ToDouble(txtCash.Text) - consume).ToString("0.0");
            }

这一行:

txtCash.Text = (Convert.ToDouble(txtCash.Text) - consume).ToString("0.0");

若果这样写,算出来的余额不准,每过一段时间就会算一次余额,这样会多减了钱,但是把余额变成固定值就可以解决这个问题。

改正之后的代码:

 if (txtType.Text.Trim() == "会员")
            {
                double consume = consu * Convert.ToDouble(table.Rows[0]["VipRate"]);
                txtCash.Text = (Convert.ToDouble(student.Rows[0]["cash"]) - consume).ToString("0.0");
            }

将余额变成数据库里面固定的余额即可。

全部代码:

 private void timer1_Tick(object sender, EventArgs e)
        {
           
            Entity.Basic_Info basicInfo = new Entity.Basic_Info();
            basicInfo.Key = "1";
            Facade.BasicFacade facade = new Facade.BasicFacade();
            DataTable table = facade.SelectBasic(basicInfo);

            Entity.Online_Info onlineInfo = new Entity.Online_Info();
            onlineInfo.cardno = txtCardno.Text.Trim();
            Facade.OnlineFacade fa = new Facade.OnlineFacade();
            DataTable ta = fa.Select(onlineInfo);

            Entity.Student_Info studentInfo = new Entity.Student_Info();
            studentInfo.cardno = txtCardno.Text.ToString().Trim();
            Facade.StudentFacade f = new Facade.StudentFacade();
            DataTable student = f.SelectStudent(studentInfo);

            DateTime t1 = Convert.ToDateTime(txtOnTime.Text.ToString().Trim());//上机时间
            DateTime t2 = Convert.ToDateTime(DateTime.Now.ToString());//现在时间
            TimeSpan consumetime = t2.Subtract(t1);

            Double consu = consumetime.TotalMinutes;//花费的时长

            if (txtType.Text.Trim() == "会员")
            {
                double consume = consu * Convert.ToDouble(table.Rows[0]["VipRate"]);
                txtCash.Text = (Convert.ToDouble(student.Rows[0]["cash"]) - consume).ToString("0.0");
            }
            else
            {
                double consume = consu * Convert.ToDouble(table.Rows[0]["ComRate"]);
                txtCash.Text = (Convert.ToDouble(student.Rows[0]["cash"]) - consume).ToString();
            }

            if (Convert.ToDouble(txtCash.Text.Trim())==0)
            {
                MessageBox.Show("余额不足,自动下机");
                studentInfo.cash = 0;
                DataTable studentt = f.ModifyCash(studentInfo);
                this.Close();
            }

                  
        }
发布了109 篇原创文章 · 获赞 17 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/aaaPostcard/article/details/100065473