C#版机房收费系统
C#实践项目
Ariel_欢
君子不器
展开
-
机房合作——图
目录一、用例图二、包图三、类图四、E-R图五、原型图六、时序图七、架构图一、用例图二、包图从上到下,依次是我们常说的U层、B层、D层,中间有两个接口层(IBLL、IDAL),这两层主要是为了解耦合,另外还引用了实体层,封装了工具类,再通过抽象工厂+配置文件+反射来实现整个系统的运行。画包图,还需要注意下它们之间的关系。三、类图这里是根据顾客登录的一条线来画的。四、E-R图E-R图,顾名思义,实体-关系,所以主要画出实体与实体间的关系原创 2020-11-08 12:06:00 · 340 阅读 · 13 评论 -
using (SqlConnection conn = new SqlConnection(DbUtil.ConnString))的解释---using(){}的使用
using (SqlConnection conn = new SqlConnection(DbUtil.ConnString)解释:在 using 语句中创建一个实例,确保退出 using 语句时在对象上调用 Dispose。当到达 using 语句的末尾,或者如果在语句结束之前引发异常并且控制离开语句块,都可以退出 using 语句。实例化的对象必须实现 System.IDisposabl...原创 2020-01-20 16:05:18 · 4500 阅读 · 11 评论 -
三层登录实例以及代码详解
一、实例:现在有一个积分系统,学生每登录一次可获得10积分奖励。原创 2020-01-20 15:41:03 · 534 阅读 · 6 评论 -
三层架构的简单理解
1.什么是三层?2.为什么使用三层?3.三层之间数据是怎么传递的呢?4.三层的优缺点?5.三层登录实例一、什么是三层?在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。三层结构从下至上分别为:数据访问层、业务逻辑层(又或称为领域层)、表示层。表示层(UI):主要是指与用户交互的界面。用于接收用户输入的数据和显示处理后用户需要的数据。业务逻辑层(BLL):UI层和DA...原创 2020-01-13 16:00:03 · 3696 阅读 · 9 评论 -
【C#机房重构】都是空格惹的祸——Parameter ‘@CardCash‘ must be defined
• 问题在做机房重构下机时,数据库执行命令报错:Parameter ‘@CardCash’ must be defined(译:必须定义参数“@CardCash”):• 思考出现这个错误的第一个反应,必然是去查看是否自己的数据库和传参数的实体以及UI层,B层的参数是否写错了,都仔细检查了一遍,并没有出错,确实是定义的CardCash。并且进行断点调试,发现参数已经从B层传进D层了,也传到MySQLHelper这个类了,怎么到最后执行命令的时候却报异常呢?• 解决小编百思不得其解,请来了我们原创 2020-10-31 10:46:12 · 399 阅读 · 6 评论 -
【机房重构】C#与数据库访问技术之ExecuteNonQuery方法介绍及实例、SQL注入问题
ExecuteNonQuery()方法介绍:1.ExecuteNonQuery()方法是SqlCommand类的一个方法2.ExecuteNonQuery方法主要用来更新数据。通常使用它来执行Update、Insert和Delete语句。返回值意义: 对于Update、Insert和Delete语句,返回值为该命令所影响的行数。一般是大于0的整数,0说明没有影响 ,-1表示执行出错。 对于所有其他类型的语句(如select),返回值为-1。 实现步骤:Comma.原创 2020-08-15 17:12:07 · 1325 阅读 · 10 评论 -
【机房重构】错误集锦
问题1:“无法将顶级控件添加到控件”运行程序:显示“无法将顶级控件添加到控件”的错误。解决方法:在代码中加入:myBalanceForm.TopLevel = false;//表示myBalanceForm窗体不是顶级窗体。注意:form窗体的TopLevel属性是什么?Form.TopLevel 获取或设置一个值,该值指示是否将窗体显示为顶级窗口。顶级窗口的意思是指这个窗口是否是可以嵌套在其他页面中。如果为true,则将窗体显示为顶级窗口;否则,为fals...原创 2020-08-04 21:51:51 · 441 阅读 · 6 评论 -
C#中的三种注释与其快捷键、以及创建类时自动生成类的注释的设置方法
/// <summary> /// 这个方法的作用是求两个整数之间的最大值 /// </summary> /// <param name="n1">第一个整数</param> /// <param name="n2">第二个整数</param> /// <returns>返回较大的整数</returns> public static int GetMax(int n1,int n2) { return n1>n2?n1:n2; }———————————————原创 2020-06-07 22:24:59 · 12649 阅读 · 6 评论