【C# 重构】—上机
发布日期:2021-05-07 13:42:36 浏览次数:18 分类:技术文章

本文共 10294 字,大约阅读时间需要 34 分钟。

【前言】

今天为大家分享一下,上机的做法,刚开始敲的时候我和小伙伴一起敲的上机,当时刚接触C#,感觉和尚摸不到头脑,不够随着时间的投入,慢慢也就了解了。

【过程】

在做上机的过程中,其实还是和第一次机房上机的时候一样,先了解它的流程,根据它的流程,然后敲代码。

敲的时候,我是按照功能敲的,我当时不知道还能按照数据库表敲,等我现在把所有的敲完了,我才知道。敲的时候先敲IDAL层(分析功能)。

IDAL层

DataTable SelectNum(Entity.student_Info student);        //查询上机表卡号        DataTable SelectOnline(Entity.OnlineEntity online);        //访问basicdata表        DataTable SelectBasicdata(Entity.BasicData basic);        //插入上机表信息        int insertOnline(Entity.OnlineEntity online);        //更新卡内余额        int updatecard(Entity.student_Info student);        //添加下机信息        int insertline(Entity.Line_Info line);        //删除上机表信息        int delectOnline(Entity.OnlineEntity online);

DAL层

{        //查询卡表中卡号是否存在        public DataTable SelectNum(Entity.student_Info student)        {            SQLHelper sqlHelper = new SQLHelper();            SqlParameter[] sqlparams = { new SqlParameter("@Cardno", student.cardno) };            string sql = @"select * from [student_Info] Where Cardno=@cardno";            DataTable table = sqlHelper.ExecuteQuery(sql, sqlparams, CommandType.Text);            return table;        }        //查询、更新上机表        public DataTable SelectOnline(Entity.OnlineEntity online)        {            SQLHelper sqlHelper = new SQLHelper();            SqlParameter[] sqlparams = { new SqlParameter("@Cardno", online.cardno) };            string sql = @"select * from [OnLine_Info] where Cardno =@cardno";            DataTable table = sqlHelper.ExecuteQuery(sql, sqlparams, CommandType.Text);            return table;        }        //查询基本数据设定表        public DataTable SelectBasicdata(Entity.BasicData basic)        {            SQLHelper sqlhelper = new SQLHelper();//实例化SQLhelper            //string sql = " select top 1 * from [BasicData_Info]";            SqlParameter[] sqlparams = { new SqlParameter("@Serial", basic.Serial) };            string sql = "SELECT  * from [BasicData_Info] where Serial=@Serial"; //设置SQL语句查询            DataTable dt = sqlhelper.ExecuteQuery(sql, sqlparams, CommandType.Text);            //DataTable dt = sqlhelper.ExecuteQuery(sql, CommandType.Text);            return dt;        }        //插入上机表信息        public int insertOnline(Entity.OnlineEntity online)        {            SQLHelper sqlHelper = new SQLHelper();            SqlParameter[] sqlparams =            {                new SqlParameter("@Cardno",online.cardno),                new SqlParameter("@Ontime",online.ontime),                new SqlParameter("@Computer",online.Computer),                new SqlParameter("@studentName",online.studentName),                new SqlParameter("@ondate",online.ondate),                new SqlParameter("@date",online.date)            };            string sql = @"insert into [Online_Info] (cardno,ontime,computer,studentName,ondate,date)values(@Cardno,@Ontime,@Computer,@studentName,@ondate,@date)";            int insertOnline = sqlHelper.ExecuteNonQuery(sql, sqlparams, CommandType.Text);            return insertOnline;        }        //更新卡内余额        public int updatecard(Entity.student_Info student)        {            SQLHelper sqlHelper = new SQLHelper();            SqlParameter[] sqlparams =            {                new SqlParameter("@Cardno",student.cardno),            };            string sql = @"update [student_Info] set cardno=@Cardno";            int res = sqlHelper.ExecuteNonQuery(sql, sqlparams, CommandType.Text);            return res;        }        //插入下机信息        public int insertline(Entity.Line_Info line)        {            SQLHelper sqlHelper = new SQLHelper();            SqlParameter[] sqlparams =            {                new SqlParameter("@Cardno",line.cardno),                new SqlParameter("@Ontime",line.ontime),                new SqlParameter("@Offtime",line.offtime),                        new SqlParameter("@Consumetime",line.consumeTime),                new SqlParameter("@Consume",line.consume),                new SqlParameter("@Status",line.status),                new SqlParameter("@Computer",line.computer),            };            string sql = "insert into [Line_Info] (Cardno, ontime, offtime,consumetime,consume,status,computer) values (@Cardno,@Ontime,@Offtime,@Consumetime,@Consume,@status,@computer)";            int lineRes = sqlHelper.ExecuteNonQuery(sql, sqlparams, CommandType.Text);            return lineRes;        }        //删除上机信息        public int delectOnline(Entity.OnlineEntity online)        {            SQLHelper sqlHelper = new SQLHelper();            SqlParameter[] sqlparams =            {                new SqlParameter("@Cardno",online.cardno)            };            string sql = "delete from [online_Info] where cardno =@Cardno";            int res = sqlHelper.ExecuteNonQuery(sql, sqlparams, CommandType.Text);            return res;                                    }            }

工厂层和其他都一样,就不往上贴了。

public DataTable SelectNum(Entity.student_Info student)        {            Factory.SurfingFactory fact = new Factory.SurfingFactory();            IDAL.SurfingIDAL idal = fact.CreateUser();            DataTable table = idal.SelectNum(student);            return table;        }        //查看onLine中卡号是否存在        public DataTable SelectOnline(Entity.OnlineEntity online)        {            Factory.SurfingFactory fact = new Factory.SurfingFactory();            IDAL.SurfingIDAL idal = fact.CreateUser();            DataTable table = idal.SelectOnline(online);            return table;        }        //查看basicdata表中余额        public DataTable SelectBasicdata(Entity.BasicData basic)        {            Factory.SurfingFactory fact = new Factory.SurfingFactory();            IDAL.SurfingIDAL idal = fact.CreateUser();            DataTable table = idal.SelectBasicdata(basic);            return table;        }        //插入上机信息        public int insertOnline(Entity.OnlineEntity online)        {            Factory.SurfingFactory insertfact = new Factory.SurfingFactory();            IDAL.SurfingIDAL idal = insertfact.CreateUser();            int Res = idal.insertOnline(online);            return Res;        }        //下机时更新学生表中的余额        public int updatecard(Entity.student_Info student)        {            Factory.SurfingFactory fact = new Factory.SurfingFactory();            IDAL.SurfingIDAL idal = fact.CreateUser();            int Res = idal.updatecard(student);            return Res;        }        //下机时添加下机信息        public int insertline(Entity.Line_Info line)        {            Factory.SurfingFactory fact = new Factory.SurfingFactory();            IDAL.SurfingIDAL idal = fact.CreateUser();            int Res = idal.insertline(line);            return Res;        }        //下机时删除上机记录        public int delectOnline(Entity.OnlineEntity online)        {            Factory.SurfingFactory fact = new Factory.SurfingFactory();            IDAL.SurfingIDAL idal = fact.CreateUser();            int Res = idal.delectOnline(online);            return Res;        }    }

外观层也和其他一样,就不贴了。

UI层

#region 查看是否有这个学号            if (txtCardNo.Text.Trim() == " ")            {                MessageBox.Show("请输入学号!", "温馨提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);            }            //try            //{            //判断卡号在卡表是否存在                Entity.student_Info student = new Entity.student_Info();                Facade.SurfingFacade surfingFacade = new Facade.SurfingFacade();                student.cardno = txtCardNo.Text.Trim();                DataTable table = surfingFacade.SelectNum(student);            if (table.Rows.Count == 0)            {                MessageBox.Show("此卡不存在,请重新输入", "温馨提示");                txtCardNo.Focus();                return;            }            else            {                //判断上机表online表中是否有此卡号                Entity.OnlineEntity onlineEntity = new Entity.OnlineEntity();                Facade.SurfingFacade fact = new Facade.SurfingFacade();                onlineEntity.cardno = txtCardNo.Text.Trim();                DataTable Dtable = fact.SelectOnline(onlineEntity);                if (Dtable.Rows.Count != 0)                {                    MessageBox.Show("此卡正在上机", "温馨提示");                }                else                {                    //余额是student表中的余额                    Entity.student_Info studentNum = new Entity.student_Info();                    Facade.SurfingFacade FsurfingFacade = new Facade.SurfingFacade();                    string Cashinfo = table.Rows[0]["cash"].ToString();                    txtCash.Text = table.Rows[0]["cash"].ToString();                    Entity.BasicData basic = new Entity.BasicData();                    Facade.SurfingFacade facade = new Facade.SurfingFacade();                    basic.Serial = "1";                    DataTable basictable = facade.SelectBasicdata(basic);                    string basicinfo = basictable.Rows[0][1].ToString();                    //doubule双精浮点数,                    double cash = Convert.ToDouble(txtCash.Text);                    double unitcash = Convert.ToDouble(basicinfo);                    if (cash < unitcash)                    {                        MessageBox.Show("余额不足,请先充值");                        return;                    }                    else                    {                        Entity.OnlineEntity online = new Entity.OnlineEntity();                        Facade.SurfingFacade onlinefact = new Facade.SurfingFacade();                        txtOntime.Text = DateTime.Now.ToLongTimeString().ToString();                        txtOndate.Text = DateTime.Now.ToShortDateString().ToString();                        txtName.Text = table.Rows[0]["studentName"].ToString();                        online.cardno = txtCardNo.Text.Trim();                        online.ontime = txtOntime.Text.Trim();                        online.ondate = txtOndate.Text.Trim();                        online.date = DateTime.Now.ToString();                        online.Computer = Environment.MachineName;                        online.studentName = table.Rows[0]["studentName"].ToString();                        int insertOnline = onlinefact.insertOnline(online);                        MessageBox.Show("上机成功!", "温馨提示");                                                                   }                }            }

【感受】

我感觉这里的难点就是获取BasicData里面的返回数据,这点是相对其他功能比较难的,一会再写一篇调错的文章。

上一篇:【C# 重构】—上机调错
下一篇:【C# 重构】TabControl控件-VS

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2025年03月20日 08时20分36秒