对于机房收费的结账,我感觉是所有窗体中,最难的一个.这个窗体我真的做了好多天.它的难度系数我感觉是最高的. 首先,你要理清上机时间和收费标准的关系,在预备时间中,是不收费的. 其次,在超过预备时间,一个单位时间之内,收一个费用.在一个单位时间到两个单位时间内,收两个单位时间的费用. 然后,在结账窗口,链接数据库,显示出所有该用户未结账的信息. 最后,在点击结账时,这个用户的所有未结账信息都结账,并写入数据库.结账窗口查询类信息都为0.并把结账信息写入结账表.已被制作报表使用. 在做结账窗体时,主…
我们要用一个软件做报表的模板.然后在VB里面添加部件.代码调用模板,详细步骤如下. 一.下载安装 首先做报表要下载安装Grid++Report 4.5 报表设计器 点击下载(内含破解补丁) 二.制作模板 1.打开软件--插入--页眉.明细网格.页脚.如图 2.制作页眉 静态框:好像Label,能写入文字并显示 综合文字框:可以写入函数.变量等.跟文字结合并显示.在这里我们用作显示日期 上图右下角[#date3#][#time#]制作是自定义了date3跟time这两个变量.并且在VB代码中付给他…
机房收费系统总结系列到此就算是要结束了.在做机房收费系统之前,做了学生管理系统,可以说,对机房收费系统的帮助很大. 在机房收费系统中,数据库的查询,数据写入数据库,更改数据库内的信息等一些操作在学生信息系统中,都已经用过.在这里使用起来,就比较轻松. 这个系统中,比较难一点的是组合查询和结账窗体.新接触的东西就是报表的使用,对于这些知识点,我在前面的总结中都已经总结过了,这就不多说了. 总体来说,这个系统最大的遗憾就是数据库我没有从新建立,使用的是别人的数据库,在验收时,师傅说这是一个最大的缺憾…
在机房收费系统中,新注册的用户,更改的密码,上机下级记录,上机收费记录等等都要写入数据库,这样,后面的查询才能生效.像数据库中写入数据,首先,找到你要写入数据的数据库中的表,在表中建立新的行,让后再把相对应的数据写书数据库,保存,更新.我认为大概就是这样,以机房收费系统注册用户为例,看看写入数据库的代码吧! 添加用户窗体如下所示(以它为例): 代码如下(仅供参考): 在写如之前,首先要确定输入数据库中的各个数据不能为空. Option Explicit '--------------------…
机房收费系统已经做了很长一段时间了,虽然到目前为止,仍然没有结束,但已经结节尾声了.我感觉现在有必要回首总结一下整个机房收费系统. 除了结账做了一半,报表接触一点之外,其他的都基本上差不多了.从做过的这些和正要做的来分析机房收费,我把他分成了几个部分:查询数据库类(简单查询显示,组合查询).向数据库写入数据类.导出表格类.报表类.各个表格之间相互连接类(结账). 以登陆窗体为例子,简单总结一下VB查询数据库实现登陆系统.我的登陆窗体设计如下: 设计登陆窗体后,设计登陆模块,代码如下: Publi…
调错部分 上一篇博客<VB.net版机房收费系统--结账功能实现(代码部分>说的是结账功能的实现,亮出了代码.是在为这篇博客做铺垫.尽管结账功能代码是借鉴的巨人的博客.可是自己比着葫芦画瓢还是有欠妥的地方,毕竟每个人作画的能力是不一样的.就和唱歌跑调似的. 悟空用如意金箍棒三打白骨精,我用仅有的耐心和智商调Bug,论白骨精和Bug孰是孰非,对此仅仅想说,祝愿全部的程序猿都能嫁个姓"梅"的.孩子取名"梅Bug". 期初是列名无效.然后尝试将存储过程中的一句…
在机房收费系统中,组合查询用的还是挺多的,像上机状态查询窗体.学生上机统计信息窗体.操作员工记录窗体.基本信息维护窗体.这其中,学生基本信息维护窗体中的东西比较多,就以它为例子,说说组合查询吧! 学生基本信息维护窗体如图所示: 先把代码放在下面,然后再解说: Option Explicit Private Sub cboField1_Click() '把选择的字段转换成 sql语句中的字段 If cboField1.Text = "卡号" Then cboField1.Tag = &q…
说完了经验,再谈谈技术方面,其实对于技术,师哥师姐们都已经写了好多博客,这也是我在敲机房几乎没写这方面的博客的原因,不过别人的再好也是别人的,下面说说自己的. (一)数据库的设计 其实虽然说是数据库的设计,但是自己并没有设计属于自己的数据库,自己刚刚开始敲的时候师傅虽然说,数据库还是自己设计比较好,但是我当时竟然以为是照着建一个类似的,当然我也这样干了,结果敲代码的时候发现,原来自己代码的简易程度和数据库设计的合不合理密不可分,明明如果数据库建的好,一两句代码就能解决,就因为数据库太啰嗦,导致代…
我个人一直认为,组合查询是机房收费系统的一个难点,尤其是用到三层之后,如果要为组合查询中的每一个查询建立一个显然是太麻烦了. 下面介绍一下我的方法,对大家起个参考作用. 我将该表中可输入的内容定义为一个类,这样调用一次B层和D层就可以了完成查询了. 我以学生上机记录查询为例 1.UI层 Public Class FrmQuerryRecALLStuUP Protected Overrides Sub cmdQuerry_Click(ByVal sender As System.Object, B…
查询的意思就是查找,寻找,指在某一个或几个地方找出自己所要的信息,假如我想搜索一下我自己写的博客,名字叫做初雪之恋,我在百度的搜索框中输入丁国华三个字,会有怎样的惊喜等着我? 啊哦,这个信息并不是我想要的,于是我再搜,"丁国华 廊坊师范学院  csdn"搜索结果如下: 很显然,这个还不是我想要的结果,我接着搜,"丁国华 廊坊师范学院 csdn 初雪之恋": 在我的理解中,组合查询就是通过条件层层限制,一步一步精确,得到我们想要的答案,在机房收费系统中,有好几处涉及组…
在机房收费系统中,有几个窗体需要导出数据到EXCEL表格中,如:学生上机记录查询窗体.学生充值记录查询窗体.收取金额查询窗体等. 前面的几篇总结,大家建议我不要把代码写的太详细,这样,不利于读者思考,以后我自己回顾的时候,可能也会看也不看,直接粘上所要用的东西,这样就起不到博客应该起到的作用.所以这篇博客,我会换一个方式来总结. 在导出EXCEL表格之前,首先要确保你的电脑已经安装了office.然后,可以编辑一个函数 , 定义导出表格的过程,在使用的时候,直接调用就ok了,这样,系统中所有的导…
报表,即报告情况的表格,简单的说:报表就是用表格.图表等格式来动态显示数据,可以用公式表示为:"报表 = 多样的格式 + 动态的数据". 在没有计算机以前,人们利用纸和笔来记录数据. 比如:民间常常说的豆腐帐,就是卖豆腐的每天将自己的卖出的豆腐记在一个本子上,然后每月都要汇总算算,这种情况下,报表数据和报表格式是紧密结合在一起的,都在同一个本子上.数据也只能有一种几乎只有记帐的人才能理解的表现形式,且这种形式难于修改. VB版机房收费系统的报表采用的是第三方的Grid++Report,…
之前做机房收费系统用的报表是Grid++Report,这次VB.NET重构中用到了VisualStudio自带的报表控件. 刚開始当然对这块功能非常不熟悉,只是探究了一段时间后还是把它做出来了. 以下把在VisualStudio(我用的是VisualStudio2013,假设与您使用的版本号不同,过程中如有不符还请考虑实际情况)中制作报表的过程尽可能具体地记录下来,供刚開始学习的人学习參考. 做事要有全局观,先看一下成品,做好的报表例如以下图: watermark/2/text/aHR0cDov…
最初接触存储过程是在耿建玲老师的视频里,当初仅仅是草草过了一遍.仅仅是有了个印象.知道了这个名词:大二时也有SqlServer数据库这门课,只是老师没讲,自己也没看:真正对存储过程的了解来自于自学考试中的<数据库系统原理>,在考试中,知道存储过程是干嘛的.在纸上怎么写,但从来没有在DBMS中亲手敲过.于是机房收费系统给了我这个机会. 在这里不再过多叙述关于存储过程德基本知识,仅仅写一下在机房收费系统这个小项目中是怎样用到存储过程的. 背景: 机房收费系统中有一个注冊的功能,原型图例如以下:  …
VB.NET第一版机房收费系统,告一段落,验收的时候.问题也是大大的存在,没实用上设计模式,什么触发器.存储过程,都没实用上.看看其她小伙伴的,七层实现登录?那是什么东东,相比較我的三层而言,多了两倍还加个一,通过查资料,看博客.憋了好几天,最终,憋出了一个七仙女---七层实现系统登录.七个女儿,各司其职,完美配合,衍生出众多漂亮的故事. 从三层猛地跳到七层,有种穿越的感觉.说白了就是不会,又是想逃避的感觉,但是人生在世,有的事情不能随着自己的性子来.喜欢了就去做.不喜欢.就不做,没办法.就一直…
机房收费系统中,好多查询的窗体都包含同一个功能:将数据库中查询到的数据显示在MSHFlexGrid控件中,然后再把MSHFlexGrid控件中的数据导出到Excel表格中. 虽然之前做过学生信息管理系统,不过并没有涉及到这个功能,因此记录于此,于己,回顾反思,于大家,分享学习. 方法一:在根目录中事先建立空的Excel表格 1.在与VB工程同一根目录中建立将要导入数据的Excel表格: 2.在VB事件中写代码: Private Sub cmdExport_Click() Dim i As Int…
VB.NET机房收费系统项目总结 从2013年5月3日——2013年8月20日历时三个多月的.NET机房收费系统终于完成了.项目做完了,真有一种如释重负的感觉. 下面我将从文档.UML图,代码这三个方面来进行总结,重点是前两方面内容. 一.文档 1.1可行性分析报告和项目开发计划 这两个文档主要是确定软件系统是否值得开发,搞清楚问题的性质,确定系统的目标和规模,从技术,经济和社会等方面分析论证项目的可行性.还有对此项目的开发做个总体的规划,内容有:项目的背景,项目概述,计划,人员及组织分工,交付…
异常处理,英文名为Exceptional Handling, 那时年少,还记得那年一起学习过的VB6.0的时候,常常使用ONError的错误语句.与传统VB6.0中的OnError语句相比.NET平台的异常处理机制更加灵活,而且使用更加方便.是代替日渐衰落的Error Code方法的新法,提供Error Code 所未能具体的优势.异常处理巧妙又不失完美的分离了接收和处理错误代码.这个功能理清了编程者的思绪,也帮助代码增强了可读性,方便了维护者的阅读和理解. 异常处理(又称为错误处理)功能提供了…
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/xdd19910505/article/details/35574125 一.使用背景        机房收费系统结账的时候.需求是当选择一个用户.同一时候显示该用注冊.充值和退卡记录.这些数据来提供结账数据.而结账之后要同一时候更新卡.充值.退卡表三个表,假设直接写SQl语句的话会是非常复杂的. 而这些需求可以封装为一个存储过程,点击结账之后仅仅须要传入參数运行存储过程就可以.          …
       机房收费系统有报表的功能,报表对于我们来说有点陌生.这不是会计的事吗?怎么机房收费系统也參合进来了,事实上我们学会了报表的步骤.理解了代码后.报表变得不是非常难,世上无难事,仅仅怕肯登攀吗!     以下是报表步骤      1 安装Grid++Report 报表设计器(在网上下载安装)      2 下载控件 安装  然后在vb的project-部件中引用 如图      3 创建模板(到时候导入到vb中)      4 在vb中用代码将报表链接      以下是我仅仅制作报表模…
datagridview,翻译成中文的意思是数据表格显示,使用DataGridView控件,能够显示和编辑来自不同类型的数据源的表格,将数据绑定到DataGridView控件很easy和直观,大多数情况下,仅仅须要设置DataSource属性就可以,在绑定到包括多个列表或表的数据库源时,仅仅需将DataMember属性设置为绑定的列表或表的字符串就可以.机房收费系统多次用到数据表格的显示,而且导出为Excel表格,第一次机房收费系统是用VB版本号的,她导出Excel的方法例如以下: 打开VB-p…
外观设计模式,<大话设计模式>第103页详细讲解,不记得这块知识的小伙伴可以翻阅翻阅,看过设计模式,敲过书上的例子,只是学习的第一步,接着,如果在我们的项目中灵活应用,把设计模式用出花儿来,才是王道,有人总说,纸上得来终觉浅,绝知此事要躬行,可是真到了躬行的时候,总是行不通,语言倒不过来,设计模式是C#语言的,机房收费是VB.NET版本的,书上的模式和机房联系不起来,不知道怎么应用,没办法,憋呗,看博客,问人,上网查资料,就这样,憋出一个外观,虽不太完美,但却异常宝贵,因为那是我纠结好长时间从…
外观设计模式.<大话设计模式>第103页具体解说,不记得这块知识的小伙伴能够翻阅翻阅,看过设计模式,敲过书上的样例,仅仅是学习的第一步,接着,假设在我们的项目中灵活应用,把设计模式用出花儿来.才是王道,有人总说,纸上得来终觉浅,绝知此事要躬行,但是真到了躬行的时候,总是行不通,语言倒只是来,设计模式是C#语言的,机房收费是VB.NET版本号的.书上的模式和机房联系不起来.不知道怎么应用.没办法,憋呗.看博客.问人,上网查资料,就这样,憋出一个外观,虽不太完美.但却异常宝贵,由于那是我纠结好长时…
总感觉这次机房收费系统非常有份量,一直没有下手总结,从2014-7-27至2014-9-29.这中间有太多故事和成长.首先说一下两次机房收费系统的不同,它是我们从面向过程向面向对象的一个转变.在.NET平台下开发,採用三层思想,并加入了一些设计模式.然后说一下我的变化,无论从思想还是技术上绝对是一笔財富.经过这次机房收费系统.我更加坚信两句话:"出来混迟早都要还的""一切都会过去的". 这次个人重构:7.27-8.11(绘图阶段,当中包含数据设计2天):8.12-9…
接着上篇我们说的配置文件,今天我们来说一下接口. 1.UML图 2.三层架构 3.Sqlhelper 4.配置文件 5.接口 6.设计模式 什么是接口呢?我们可以将接口理解为用于沟通的中介的抽象化.可以将接口理解为我们生活中的“中介”.那么我们为什么要在机房收费系统中加接口呢?机房收费系统中的接口到底起着什么作用呢?看一下下面这段代码,这是我接口的一段代码. '********************************************************************…
经过几天的缝缝补补,自己的个人版最终OK了,!或许是由于有第一次的机房收费系统的经验,这次做,感觉很亲切. 在业务逻辑方面,沿袭曾经的逻辑.做了一点升级.可是修改不大. 在数据库方面,感觉自己从一个小菜鸟在成长.第一次做机房的时候,在数据库方面,仅仅会"insert ,delete ,update, select",基本上是靠着四句话完毕整个机房收费系统的.可是.这次在做的时候,用上了视图和存储过程和一些数据库中的小技巧.在表结构上也比曾经简练了不少,靠着强大的D层的基础,使得上层的编…
重构版个人机房收费系统大概从暑假开学開始进行.花了不到一个半月的时间才完毕.以下对我在重构过程中的一写理解. 1.系统设计一个非常重要的目的就是重用.而要做到重用,低耦合是最有效的手段回想一下我们C/S的整个学习过程,我们能够发现.从開始的VB版的机房收费系统,然后到如今VB.NET版.加设计模式.对系统进行分层.这个过程就是在对系统进行解耦.要解耦,首先就要进行抽象. 把多次.反复用到的代码进行封装.其余的部分运用继承或者多态的思想,来进行使用. 在机房收费系统中我们所涉及到的一些解耦的方式:…
纵观机房收费系统,判断文本框.组合框为空问题无非两种情况.第一种:判断窗体中所有文本框.组合框是否为空.第二种:判断一部分文本框.组合框是否为空.下面看看是如何实现这两种情况的. 第一种:判断窗体中所有文本框.组合框是否为空. ''' <summary> ''' 判断窗体中所有文本框.组合框输入内容是否为空,若窗体中有允许为空的文本框或组合框, '''则不能使用此函数 ''' </summary> ''' <param name="frm"><…
机房收费系统的主窗体是MDI窗体,为了在这个窗体上添加控件,所以我们在窗体上添加了picture控件,在MDI窗体中,子窗体实际上位于MDIClient里,即子窗体的父窗体就是MDIClient,而放置在MDI中的picture控件和MDIClient是同一级别的,由于层次结构,所以无法使子窗体显示在picture控件的上面(这段话出自刘杰师哥的博客).为了将子窗体显示到父窗体的上面,所以我们使用了API函数,就是这个setparent函数(Private Declare Function Se…
去年的时候,我写过一篇机房收费系统登陆的总结文章,那是站在VB的基础上,直接查询数据库实现的登陆.是很初期的知识.如果想了解详情,请看VB查询数据库之登陆窗体--机房收费系统总结(一). 今天,我要换一个角度,换一个方式,来实现登陆.首先,我选择的开发工具是VB.NET,数据库是SQLSever2008.其次,我用的是三层的思想,把界面,逻辑和数据都分开,减少相互之间的影响.在次,界面层尽量简洁,所有的算法和业务逻辑都写到逻辑层,同时使用了接口和工厂模式以及外观模式,减少了相互之间的依赖,降低了…