
【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里面的返回数据,这点是相对其他功能比较难的,一会再写一篇调错的文章。
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年03月20日 08时20分36秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
vue if else用法。
2019-03-04
vue 官方实例教程 markdown demo
2019-03-04
vue-router 缓存路由组件对象
2019-03-04
js的各种数据类型判断(in、hasOwnProperty)
2019-03-04
严格模式、混杂模式与怪异模式
2019-03-04
一篇文章带你搞定 Java 中字符流的基本操作(Write / Read)
2019-03-04
HTML 和 CSS 简单实现注册页面
2019-03-04
(SpringMVC)springMVC.xml 和 web.xml
2019-03-04
Oracle 学习一篇文章就够了(珍藏版)
2019-03-04
一篇文章带你搞定 Oracle 的体系结构
2019-03-04
Oracle 单行函数
2019-03-04
(LeetCode)Java 求解搜索旋转排序数组
2019-03-04
(模拟数组)Java 求解螺旋矩阵 II
2019-03-04
Python学习:字符串
2019-03-04
计算几何(旁切圆) - Ex-circles - UVA 11731
2019-03-04
DP - Tickets - HDU - 1260
2019-03-04
JVM篇-结合源码分析垃圾收集器的类型
2019-03-04
Warning: The core is locked up的解决办法
2019-03-04
Spring 与使用STOMP消息
2019-03-04