敲这部分的时候逻辑有点混乱,想了好几天才算基本实现,下面是我整理的思维过程。

上机过程:



SQL server 2012 收费吗 sql server怎么收费_控件



下机过程分为两种:



一:正常下机



 



SQL server 2012 收费吗 sql server怎么收费_SQL server 2012 收费吗_02



二:强制下机



 当定时检查余额为0时,强制学生下机。



需要注意的问题:



一:时间格式。因为我用的是SQL2005,所以正确的时间格式很重要。



二:不要忘记基本数据设定表,而且要用最新定制的收费标准。



三:时刻记着你是管理着而不是上机的学生。(所以定时检查余额是只需检查余额为0,强制下机即可)。



四:定时检查余额的时间间隔,Timer控件的Interval属性可以设置为0到65535之间的任意直,所以用Timer触发事件的最大时间间隔只能有65秒。如果你想增大时间间隔,可以使用下面的代码。但是记着时间间隔最大不能超过你的收费递增时间。



Dim dtNextTime As Date
Private Sub Form_load()
Timer1.Interval = 500
Timer1.Enabled = True
dtNextTime = DateAdd("n", 2, Now)
End Sub
Private Sub Timer1_Timer()
If Now >= dtNextTime Then
Timer1.Enabled = False
'在此加入你的代码
dtNextTime = DateAdd("n", 2, Now)
Timer1.Enabled = True
End If
End Sub

DateAdd函数用于计算在将来的多长时间后的时间(本示例为当前时间后2分钟的时间)。



以上是我做上下机的思路,代码不是很复杂,这里就不写了!只要弄清楚逻辑,实现还是不困难的!