1、问题描述:
① 注册信息时,将信息添加完整后,显示添加成功,而且不报错;
② 用断点调试时,显示“查询到-1条记录”,显示能向数据库中添加信息,但是在数据库表中查询不到自己添加的信息;
③自己直接向数据库表中添加信息后,查询时可以查到;
2、问题解决:
①判断查询语句是否合理。添加信息时,根据什么查找的数据库的内容。
错误:原句:txtSQL = "select * from Student_info"
我:txtSQL = "select * from Student_info where Cardnumber=’”& txtUsercard & ”’"
在向数据库中添加信息时是添加的以前没有的信息,所以在添加时根据卡号根本就查找不到信息。(纯属复制粘贴时没有思考)
纠正后无果
②赋值语句没有错误,问题在模块里。
分块对模块内容进行检查,通过断点调试判断问题出在哪个大块,将大块分成几部分。因为我的模块里面的内容是照着《学生信息管理系统》敲的,所以现将学生的模块分部分替代原来的内容,被替代的内容先被注释。
这样一部分,一部分的去试,最后能够在数据库中找到我通过代码添加的内容了。即错误就在那一部分,进行对照,最后发现是两个属性设置错误。
③错误:rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic 被我设置成:
rst.Open Trim$(SQL), cnn, adOpenDynamic, adLockBatchOptimistic
3、相关查询
Open 方法 (ADO Recordset)
adOpenKeyset:键集游标。尽管从记录集不能访问其他用户删除的记录,但除无法查看其他用户添加的记录外,键集游标与动态游标相似,仍然可以看见其他用户更改的数据。
adLockOptimistic常数值为3 :当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。
adOpenDynamic打开动态类型游标
adLockBatchOptimistic常数值为4 :当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、 删、改的操作。(问题所在)