学生信息管理系统--------登录窗体实时错误“91”

今天刚开始敲学生没想到就遇到了传说中的夺命91…
我的是在登录窗体单击事件中

If  mrc.Eof = True

这句话报错了
在这里插入图片描述
首先我看到91中的提示然后发现上局set mrc=…这句中mrc为nothing,那么问题就出现在了sql查询语句中
我将对错两个代码进行对比一下

txtSQL = "select * from user_info where user_ID="" & txtUserName.Text & """
txtSQL = "select * from user_info where user_ID='" & txtUserName.Text & "'"

大家有没有发现错误,友情提示,下面那一句代码才是正确的。这两句的区别在于user ID=后面的那个 ’ 大家一定不要在写错了!!

第二点还有一个问题就是我查看一个师哥的博客,他说的是因为我user_ID与我数据库中的列名不一样。但是我发现我数据库中的列名和我右击查看列属性的名称,这两个是不一样的。对于这一点,我还在问询着,等出来结果后我在修改一下文章。

还有一个小伙伴说是因为公用模块中的

Public Function ConnectString() As String
    '返回一个数据库连接
    ConnectString = "filedsn=studentinfo.dsn;uid=sa;pwd=123456"
    
End Function

这里面的studentinfo要与自己配置odbc是创建的文件名一样,更改了这一点以及查询语句中的 ’ 问题后,发现不在报错了。
在我没有修改上个代码片时,上网查看的解决方法中许多大佬说应该让第一张图片中也就是下面代码块中的第一句代码变成第二句

Dim mrc As ADODB.Recordset
Dim mrc As NEW ADODB.Recordset

这位大佬是这么说的

dim rs as adodb.recordset
用C++或者java上内存管理的说法就是定义了一个变量,java上叫变量引用,但未给它分配空间
set rs=new adodb.recordset
这才给他分配了内存空间vb错误提示为 with模块错误或者未定义变量,其实就是未定义变量错误,而vb上的未定义变量包括两部分,
一个是变量的声明和分配内存空间两部分组成,这才完成了vb上变量的定义.在vb上没有那么严格的说明的.所以懂了不?!

当我加上new时又产生了实时错误3704(这个错误是基于我公用模块中还没有更改那个文件名)

在这里插入图片描述
所以我觉得这个问题就是因为自己vb程序没有雨数据库连接上,解决这个问题的方法还有一种就是添加一个ado控件,让自己的文本框能够与数据库相连接,这样也可以查询到数据。
使用这个方法可以参照这个博客。https://blog.csdn.net/weixin_42835409/article/details/81913622

发布了31 篇原创文章 · 获赞 4 · 访问量 2311

猜你喜欢

转载自blog.csdn.net/weixin_44663188/article/details/98068824