背景:
在敲学生系统的时候,进行登录学生管理学生信息登录,当时就是出师不利,还没有进入主界面就被卡在外面直接坐上了冷板凳,没想到道路刚开始就是如此坎坷,频繁报错那么就列举出3个具有代表性的问题,这个问题也是困扰了我许久,一直得不到解决,还是老办法站在巨人的肩膀上,通过查阅资料那些前辈们的的博客也是知道,不光自己也是遇到了类似的问题,通过借鉴大神的们的博客总结,让自己也是有了信心,感觉自己也能解决,但是事与愿违,往往想的都是很美好的,现实很残酷,跌宕起伏,排山倒海,猛龙过江,心情跟做过山车一样。
问题:
- If mrc.EOF = True The
- sTokens = Split(SQL)
- fMainForm.Show
过程:
问题一:
关于出现这个语句的错误,自己当时也是设置了断点进行设置,查看究竟是哪里报错,这一行报错,那应该就是上一行代码出现了错误。
Set mrc = ExecuteSQL(txtSQL, MsgText)
If mrc.EOF = True Then
MsgText从中得到的信息知道问题是:查询错误;[Microsoft][ODBC,驱动程序管理器],未发现数据源名称并且未指定驱动程序。自己又重新设置了SQL Server 2022数据库和服务器,并又重新添加了ODBC数据源DCN设置,在设置ODBC的DSN设置:注意以下几点
- 数据源名称要和数据库名称要一致、连接的服务器也要跟SQL Server一致
- 另一个就是验证ID的真伪,登录验证和sa的密码也要跟SQL Server一致
- 最重要的一点就是默认数据库,一定要选择SQL Server当时创建的数据库名称
- 测试数据源,就会显示成功
但是发现还是无济于事,最后还是请教的高人查看一下代码,发现难了我许久的问题竟然是在<返回据库的连接>里面=前后多打了空格,从中也是发现自己的粗心大意,没有好好仔细检查代码。
问题二:
Set mrc = ExecuteSQL(txtSQL, MsgText)
If mrc.EOF = True Then
解决了上一个问题,下一个问题就接踵而来,还是这行代码出现问题,只不过是换了一个问题,这回显示的是,<查询错误:下标越界>。
有了前面走过的经验,自己也是回头查看代码,果然发现在设置定义ExecuteSQL中,ByVal和SQL之间少打了一个空格,中间加入一个空格之后就不会在报错了。
问题三:
fMainForm.Show
第三个问题就是比较简单了,把fMainForm.Show中的代码拼写错误了,修改完成之后也是能正常进入窗体。
总结:
通过这件事情让自己充分的知道了自己的问题,对代码总是粗心大意,不仔细检查,最终坑害的总是自己,在这个过程中也是在错误中成长了许多,如果连接SQL Server中重新设置如果还是不行,那么问题一定出自于代码格式错误或是大小写书写不正确,通过互联网,查询问题进行筛选,也是锻炼了自己搜索的能力的一个锻炼,通过那些前辈们总结的博客从中得到了许多经验,在这个过程中也是重新对SQL Server的数据库和服务器、ODBC数据源重新又温习了一遍,也是孰能生巧,对它们之间的关系创建也是已经熟练了许多,可能在刚开始的时候接触的时候都是有点慢,但是发现了错误既能让自己重新温习一遍,也能在这个过程中反思自己为什么会出现错误,发现问题并不可怕,可怕的是自己没有面对困难的勇气甚至想要去逃避,如果总是畏首畏尾那样只能会让自己错失成长的机会。