首页 > 其他分享 >第一次机房之下机

第一次机房之下机

时间:2022-12-06 14:35:22浏览次数:36  
标签:Dim mrc2 String 之下 Text 第一次 mrca 机房 Fields

下机相对与机房而言,涉及的表更多,涉及到的数据更新也更加的复杂,需要多次访问数据库进行增删改查,所以流程图在这里显得就尤为重要,下机我不是在一天完成的,有了流程图我才很好的接上了之前写代码的思路。

第一次机房之下机_数据

我个人认为下机的难点就是数据多,对应关系很难理清,容易搞混,我自己的解决办法就是,先把所有的信息都显示到页面里,无论是上机的时长还是金额,先统统计算出来,显示到界面上之后再考虑和数据库之间的交互,这样的优点是不容易搞错数据。
im mrca As ADODB.Recordset            '用来存储OnLine_info 的sql语句
Dim txtSQLa As String               '用来接收返回的结果
        txtSQLa = "exec proc_OnLine_info @cardno = '" & txtCardName.Text & "'"        '连接Online表判断是否已经上机
        Set mrca = ExecuteSQL(txtSQLa, MsgText)
        If mrca.EOF Then
            MsgBox "卡号未上机或不存在", vbOKCancel + vbExclamation, "警告"
            Exit Sub
        Else
            txtCardName.Text = mrca.Fields(0)
            txtType.Text = mrca.Fields(1)
            txtSID.Text = mrca.Fields(2)
            txtName.Text = mrca.Fields(3)
            txtDepartment.Text = mrca.Fields(4)
            ComboSex.Text = mrca.Fields(5)
            txtUpDate.Text = Trim(mrca.Fields(6))
            txtUpTime.Text = mrca.Fields(7)
            txtComputername.Text = mrca.Fields(8)
            txtDownDate.Text = Date  '下机日期,也就是现在的当前日期
            txtDownTime.Text = Time '下机时间
            
            
            consumtime = DateDiff("n", mrca.Fields(9), Now) '计算消费时间,这里比较的数据库中的日期和时间在一起
            txtConTime.Text = Val(consumtime)
        End If
        
Dim mrcb As ADODB.Recordset            '用来存储student_info 的sql语句
Dim txtSQLb As String               '用来接收返回的结果
Dim usertype As String          '用来记录用户的类型
Dim Cash As String      '用来记录余额

        txtSQLb = "exec proc_sutdentinfo_select @cardno = '" & txtCardName.Text & "'"
        Set mrcb = ExecuteSQL(txtSQLb, MsgText)
            usertype = Trim(mrcb.Fields(10))                '将用户类型记录
            Cash = Trim(mrcb.Fields(9))             '记录消费前账户余额
            
            
            
Dim mrcc As ADODB.Recordset            '用来存储BasicData_Info 的sql语句
Dim txtSQLc As String               '用来接收BasicData_Info返回的结果
Dim Rate As String          '记录固定用户每小时费用
Dim tmpRate As String      '记录临时用户每小时费用
Dim listTime As String   '记录最小时间

    txtSQLc = "exec proc_BasicData_select"
    Set mrcc = ExecuteSQL(txtSQLc, MsgText)             '将设定的基本数据赋值给变量
        Rate = mrcc.Fields(0)
        tmpRate = mrcc.Fields(1)
        listTime = mrcc.Fields(3)
    mrcc.Close
    If txtConTime.Text > listTime Then              '如果上机时间大于设置的最小时间
        If usertype = "固定用户" Then
            txtConMoney.Text = Int((Rate * txtConTime.Text) / 60 + 1)
        Else
            txtConMoney.Text = Int((tmpRate * txtConTime.Text) / 60 + 1)
        End If
        txtBalance.Text = Cash - txtConMoney.Text            '计算下机后的余额
    Else
        txtConMoney.Text = 0
        txtBalance.Text = Cash
    End If
        mrcb.Fields(9) = Trim(Cash)           '将余额更新到学生表
        mrcb.Update
        mrcb.Close
        
Dim mrcd As ADODB.Recordset            '用来更新line_info表存储记录
Dim txtSQLd As String               '用来接收返回的结果
Dim onlineMsgText As String     '接受信息
    txtSQLd = "delete OnLine_Info where cardno = '" & txtCardName.Text & "'"        '上机成功后将上机表的信息删除
    Set mrcd = ExecuteSQL(txtSQLd, onlineMsgText)
  
Dim mrc2 As ADODB.Recordset            '用来更新line_info表存储记录
Dim txtSQL2 As String               '用来接收返回的结果

    txtSQL2 = "exec proc_deplane @cardno = '" & txtCardName.Text & "'"        '使用查询将所需要更新字段进行更新
    Set mrc2 = ExecuteSQL(txtSQL2, MsgText)
        mrc2.Fields(0) = Date
        mrc2.Fields(1) = Time
        mrc2.Fields(2) = Trim(txtConTime.Text)
        mrc2.Fields(3) = Trim(txtConMoney.Text)
        mrc2.Fields(4) = "正常下机"
        mrc2.Update
        mrc2.Close
    MsgBox "下机成功", vbOKCancel + vbExclamation, "提示"
    Label9.Caption = Label9.Caption - 1
下机要特别注意的点有: 1:更新上机记录的时候,SQL语句怎么写很重要,不能简单的以学号作为条件,因为一个账号会涉及到多次上机下机记录。2:上机时间和价格的运算。不要搞出来小数,从实际出发,看如何计算。3:使用存储过程的时候注意对应关系,不要搞乱。

 

 

 

标签:Dim,mrc2,String,之下,Text,第一次,mrca,机房,Fields
From: https://blog.51cto.com/u_15854472/5915751

相关文章

  • 第一次机房之上机
    经过两天的不断研究,终于将第一次机房的上机做了出来,不多废话,先贴流程图上机上机的基本思路就是,先查询卡号是否存在,是否已经上机,如果符合要求就添......
  • 数据中心机房的概念
    机房建设是一个系统工程,要切实做到从工作需要出发,以人为本,满足功能需要,兼顾美观实用,为设备提供一个安全运行的空间,为从事计算机操作的工作人员创造良好的工作环境。别人的......
  • JAX-RS之下载文件
    今天学习两个,分别是JAX-RS之下载文件  首先,看例子,下载服务器的文本文件  ​1.@Path("/file")2.publicclass3.4.privatestaticf......
  • 20221203【第一封信】【第一次去猫咖】【第二场电影】
    【第一封信】【一起看的第二场电影】《名侦探柯南:万圣节的新娘》【中午】九亩地,挺好吃的感觉,比什么鬼潮汕潮发,陈记顺和好【第一次去猫咖】......
  • “寒冬”之下,比特币ATM已无人问津!市场将更加艰难?
    自加密货币交易所FTX崩溃以来,比特币价格已跌到过1.6万美元低点。“寒冬”下,加密货币自动取款机的收益减少了28%,机器安装数量也出现下滑。根据CoinATMRadar的数据,美国加密......
  • 浅谈数据中心机房动环监控的设计
    罗轩志安科瑞电气股份有限公司上海嘉定201801摘要: 机房动力和环境监控系统是对分布的精密机房及通信局(站)内的电源、空调、油机、蓄电池、高低压配电等多种设备和环境的各......
  • 第一次搞NFT的心得
    因为公司需要搞NFT藏品,并且需要在opensea网站中显示出来。opensea目前支持的链有下图所示的链,所以想显示在opensea中显示就必须上到下面所显示的链中才能   开发流......
  • Visual Studio 第一次上传代码至gitee
    前情概要今天尝试将自己在Visualstdio上写的代码上传至gitee上,解决历程通过Git    将码云上这个地址复制至2中   会让你输入以下用户名, 密码不......
  • 第一次参加拓展训练的收获,沟通的重要性——最终导致整个项目的失败
    今天下午一点半,平常就是开始正常上课的时间。冒着太阳公公的炎炎热情,开始了我们准备已久的拓展训练,参加人员有三个团队的人员。我们这个团队是好几个小的团队组成的,所有的队......
  • “寒冬”之下,普通二本学生是如何秋招上岸的
    简介今年的校园招聘可谓异常激烈。互联网那边缩招严重,嵌入式也不好过,“寒气”在每一个行业中传递着。尤其对于没有任何工作经验的校招生来讲,想找一份合适的工作就更难了......