[目录]
机房收费系统敲了一部分,发现了很多之前没有注意的地方,以前也是态度不够严谨吧;也收获了一些技巧和经验。拿来给大家分享一下
发现的问题:
[SQL server]转换varchar值‘6000000001’时溢出整数列。超过了其最大整数值。
解决方法:将int类型,转换为Bigint 或 numeric即可。
注意到的细节和技巧:
一、代码前面加入magtext sqLtext 可判断连接数据库是否有问题。
二、理清数据库表与表之间关系的时候,要把表中各个属性填写完整。
三、文本框与数据库间形成的连接:
mrc.Fields(0) = Trim(txtSID.Text)
mrc.Fields(3) = Trim(txtAddmoney.Text)
对代码的分析:
以我的账户充值界面代码为例,代码由以下几部分构成:
Dim mrc As ADODB.Recordset
Dim MsgText As String
Dim txtSQL As String
Dim txtRecharge As String
Dim txtName As String
'判断是否输入账号
If Not Testtxt(txtSID.Text) Then
MsgBox "请输入账号!", vbOKOnly + vbExclamation, "警告"
txtSID.SetFocus
Exit Sub
End If
'判断是否输入充值金额
If Not Testtxt(txtAddmoney.Text) Then
MsgBox "请输入充值金额!", vbOKOnly + vbExclamation, "警告"
txtAddmoney.SetFocus
Exit Sub
End If
'判断是否输入账户余额
If Not Testtxt(txtRecharge.Text) Then
MsgBox "请输入账户余额!", vbOKOnly + vbExclamation, "警告"
txtRecharge.SetFocus
Exit Sub
End If
'判断充值金额是否为空
If txtAddmoney.Text = "" Then
MsgBox "请充值!", vbOKOnly + vbExclamation, "警告"
txtAddmoney.SetFocus
Exit Sub
End If
'查询语句
txtSQL = "select * from money_Info"
Set mrc = ExecuteSQL(txtSQL, MsgText)
'账户充值
txtAddmoney.SetFocus
MsgBox "充值成功!", vbOKOnly, "提示"
'添加记录
mrc.AddNew
'给每个字段赋值
mrc.Fields(0) = Trim(txtSID.Text)
mrc.Fields(3) = Trim(txtAddmoney.Text)
'更新数据库
mrc.Update
'关闭数据集对象
mrc.Close
Me.Hide
End Sub
Private Sub Form_Load()
Dim mrc As ADODB.Recordset
Dim txtSQL As String
Dim MsgText As String
txtSQL = "select * from money_Info"
Set mrc = ExecuteSQL(txtSQL, MsgText)
End Sub
1)首先是变量定义;
2)其次是判断语句;(可以设置一些限制条件)
例:
'判断是否输入账户余额
If Not Testtxt(txtRecharge.Text) Then
MsgBox "请输入账户余额!", vbOKOnly + vbExclamation, "警告"
txtRecharge.SetFocus
Exit Sub
End If
3)然后是查询语句;
txtSQL = “select * from money_Info”
Set mrc = ExecuteSQL(txtSQL, MsgText)
其中涉及到组合查询:
‘组合SQL语句
txtSQL = “select * from machineroomuser_Info where”
对于代码,越简单越好,多余的代码要尽量去除,对编写代码和理解代码有很大的帮助。
机房还有一部分没有敲,要抓紧时间了;