在机房收费系统验收的过程中发现了很多问题。现在对所有遇到的问题汇总一下。
在对数据库中的表进行操作的时候,有很多注意事项,比如。
问题一:
注意字段的类型。
在进行数据保存的时候,常常会因为数据与数据表中的类型不对称而出现错误。出现如下的错误。
这是因为,不同数据库类型之间的相互赋值引起的错误。
解决方法:把赋值的两个字段的类型改成相同的。
其实,你不需要纠结数据库字段的长度问题。当你设计好数据库,建好表的时候。你可以对文本框进行限定字段长度。
文本框的最大输入长度,设置成字段的长度。这样就可以少些许多限定性的代码。
另外一种解决方法,就是在设计数据表的时候,将数据表中的字段长度设置成可变的。
问题二:
对于一个系统,要充分的为用户考虑。当用户输入错误的时候,不仅仅要显示一个提示框。而且,要指出错误的为止。
'判断该卡号 是否正在上机
If mrcOL.RecordCount<> 0 Then
MsgBox "该卡号正在上机!", vbOKOnly +vbExclamation, "警告"
txtCardNo.SetFocus
txtCardNo.SetFocus
txtCardNo.SelStart = 0
txtCardNo.SelLength = Len(txtCardNo.Text)
Exit Sub
End If
当操作完成之后:第一个用户点击上机后
对该文本进行选取,方便下一位学生输入。
问题三:
当对数据库进行删除操作的时候,首先要检查,该记录是否正在被使用。
比如:在机房收费系统中。进行退卡注销操作。首先,需要判断该卡号是否正在上机。如果正在上机,则不允许进行退卡操作。
问题四:
作为一个机房收费系统。客户端与服务器不在同一台电脑上。
既然这样,那么就有一个问题了。对于数据库中保存的数据 是服务器的日期时间,还是客户端的日期时间。
如果使用客户端的日期时间,那么每台客户端的程序时间不一致。也会有错误的记录。所以需要使用服务器的日期和时间。
以下是一种解决方法:
在创建数据库的时候,对于日期和时间的字段 都要自动填充使用服务器的日期时间。
在创建数据表的时候,设置字段的 默认属性为 (getdate()) 默认为系统的 日期时间
也可以用SQL语句创建表
createtable Online_Info
(
namechar(10) not null,
datedate not null default getdate(),
timetime(7) not null default getdate(),
)
当对数据库进行添加纪录的时候:
Mrc.addnew
Mrc.fields(0)="姓名"
Mrc.update
Mrc.close
仅仅对第一个字段进行操作,日期和时间自动填充。这样程序的日期时间都采用了服务器端的日期时间。保证了数据的一致性。