机房收费系统之完结篇

       时间一晃,过的真快,不知不觉将近两个月的时间全部花费到机房项目里面;当然现在的心情还是比较轻松的,毕竟项目已经结了;写篇博客记录自己在这个项目中的成长和学习,仅供大家学习参考。

  项目分析:

      为什么?我的机房项目没有按时完成,感觉自己也很努力了,每天花费的时间也不少;但是项目进度走的比较慢、实现窗体的效率低、收获新知识比价少。那么?为什会出现这种情况呢!难道真的想我叙述的这样?自己就辣么没有脑子,当真就比别人差。我错了...,首先脑子这个好东西,我当然不缺;其次我更不比别人差,因为他能做的我也能做。唯独差在自己的学习过程有问题。

  项目说明:

     解析一下自己上面分析的过程。基础不牢固---->思路和想法单一--->实现功能慢--->实现窗体慢--->进度走的慢;所以究其主要原因是自己原来趟过的水还比较浅,自我满足,生怕淹着自己;哪知后来做项目会这么困难,明显简单实现的地方,自己却需要硬憋很久,才可以实现;---一定要意识做不到的后果

  项目反思:

     既然前面该趟的路已经在机房项目中补回来大部分了,也该适可而止了,不过需要通过和徒弟交流来巩固和补充自己原来的知识;这一点是肯定要做的,双方互相学习

   针对下一个阶段的学习,新的开始,新的征程,打好基础+追逐自己曾经丢失的那些时光,绝对不会比曾经的状态差,甚至一样。

  项目总结:

   (1)针对添加数据库表中数据的三种方式。“”表示前者为后者的容器,而“.”表示获得控件特性的直接访问权;两者还有一个相同的用法---控件.控件(前者为后者的容器)

       Frmmodifyresult.cmdprerecord.enabled=false
       Frmmodifyresult!cmdprerecord.enabled=false

	If not mrc.eof then'控件添加表中的字段
		For i to mrc.recordcount
			Listbox.additem mrc.fields(0)
                        listbox.additem mrc.fields(0).value
                        listbox.additem mrc!字段名
		Next i
        End if

   (2)判断控件值的各种函数

  •      isnull函数,返回值为Boolean类型---消除VB中赋值数据库表空值的情况;
  •      Instr返回字符串中在原字符串中的位置[检索位置],接受检索字符串,要检索字符串,[0(二进制,1(文本,2(数据库access]

   (3)清空控件(类)组

      For each ctrl in me.controls
		If typeof ctrl is textbox then
		Ctrl.text=""
		End if
       Next

 (4)MDI主窗体和子窗体的“QueryUnload”和“Unload”执行顺序;

   (5)mdi窗体和子窗体和picture三者之间的关系(Hwnd句柄);

    Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long'引用Windows的函数
    SetParent frmInquiryLineRecord.hWnd, Picture1.hWnd'按等级显示句柄
    frmInquiryLineRecord.Show
       当然上面代码中表示的是“在主窗体的菜单编辑器里面调出窗体”,除此外还会涉及到在子窗体中调出其它子窗体,适当调整代码即可-无非就是让当前子窗体最小化,然后显示调用出的新的子窗体;

    frmAddorDeleteUser.WindowState = 1
    SetParent frmAdduser.hWnd, frmMain.Picture1.hWnd
    frmAdduser.Show

   (6)模块定义变量要谨慎,普通窗体中定义变量,过程用Dim过程级,窗体全局使用Private;

   (7)不仅仅学会使用select,除此外还有delete(日和周账单);

    txtSql = "delete from checkweek_info"'删除周账单
    Set mrc = ExecuteSQL(txtSql, msgText)
    txtSql1 = "insert into checkweek_info select * from checkday_info"'保证周账单中信息和日账单中一致
    Set mrc1 = ExecuteSQL(txtSql1, msgText)

   (8)MsHflexgrid中应当使用isnumeric()函数防止删除该控件的标题行;(前提一定不要固定第一行数据

    If not isnumeric(trim(myhflexgrid.textmatrix.row,0))) then
      msgbox"请选择表中的数据",vbokonly,"提示"
      exit sub
    End if

  项目打包和异地发布(局域网)

  • 打包

       (1)使用VB自带打包工具进行打包

       (2)外来打包工具进行打包

      注意:一定要先把自己的源程序编译为EXE文件后再进行打包哦,防止原程序泄露,适当也可以加密,还要导入.dll文件;因为报表中需要使用插件。

  • 异地发布

     目前采取在局域网中操作,共享服务器数据库(各人),原因有的电脑不必安装数据库即可使用项目。

     (1)修改模块中代码:ConnectString="driver{sqlserver};server=电脑名(局域网IP地             址);uid=sa;pwd=1;Database=student"

     (2)除此外需要修改数据库管理工具里面允许远程登录的地方---一般默认允许;

     (3)最重要的修改电脑的防火墙

   当然还有机房中涉及到自己未完成---师傅提供的系统漏洞,原来我在身边遇到过,感觉原理是一样的。

     (1)充值金额是否为负?

     (2)退卡后重新注册此卡号是否冲突?

     (3)本地时间和数据库时间?---还记得修改器可以修改百度网盘的试用时间吗?

      当我们修改本地时间后,是否存在不花钱还会充钱的概念,因为我们在VB中使用的是本地时间;相反我们应该使用SQL语句调用数据库的时间;


   其中还有自己考虑不全面,小伙伴需要检查自己的窗体是否也存在以下这样的问题。

     (1)表中添加和删除数据后顺序是否有问题?

     (2)窗体最大化后是否覆盖已经最小化的窗体?


   大体上就是上面遇到的这些情况,当然还有其它的这里就不一一细说了,遇到问题解决问题,我们了解和知道的才足够多,剩下的需要去做就好了;当然这里我还想要说一点情况。我们在做项目的时候,不要每天都给自己定一个大目标---“简单描述我今天用多长时间敲机房”而是“我今天需要实现那些窗体或者功能”;多给自己些反馈,不要让自己看不到希望。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 39
    评论
评论 39
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值