vb 连接数据库时出现这种错误,该怎样解决

能不能在错误出现前检测,然后进行避免... 能不能在错误出现前检测,然后进行避免 展开
 我来答
企鹅先生9m
2012-12-21 · TA获得超过109个赞
知道小有建树答主
回答量:109
采纳率:0%
帮助的人:77.8万
展开全部
一般在重要、且容易出错的数据操作代码中加入错误捕捉模块,如on error或者try catth等错误处理模块来处理这个错误。

例如,VB.NET 连接数据库,使用try来捕捉错误,并处理错误的典型情况如下:
Try
Dim tmpcon As New SqlClient.SqlConnection(“数据库连接字符串”)
tmpcon.Open()
Catch ex As Exception
MsgBox("数据库连接出错")

...错误善后处理的代码
End Try
更多追问追答
追问
ConnStr = "Provider=SQLNCLI10.1;Data Source=js220049;User ID=sa;Password=sa;Initial Catalog=衡阳北站"
Conn.Open ConnStr
rs.CursorLocation = adUseClient
rs.Open Trim$(sql), Conn, adOpenDynamic, adLockOptimistic
Set Selectsql = rs
问题在“Conn.Open ConnStr”句
追答
ON ERROR GOTO ERR_EXT     
ConnStr = "Provider=SQLNCLI10.1;Data Source=js220049;User ID=sa;Password=sa;Initial Catalog=衡阳北站"
Conn.Open ConnStr
rs.CursorLocation = adUseClient
rs.Open Trim$(sql), Conn, adOpenDynamic, adLockOptimistic
Set Selectsql = rs
GOTO THIS_END

:ERR_EXT
MSGBOX "出现错误"
错误处理代码

:THIS_END
结束代码

简要说明:
ON\ ERROR GOTO 语句指定当发生错误时,跳转到指定节点:ERR_EXT
当有错误时,ERR_EXT 处理完错误后,直接运行到:THIS_END节点。
当代码运行正确时候,在最末尾处直接GOTO跳转到THIS_END节点。

数据库的连接逻辑错误是无法提前获取的(除非是你的代码语法错误或者一些可预见性的错误情况),如数据库连接的外部环境因素:网络故障,数据库临时故障,软件环境临时故障,超出最大连接数,超出内存等等,这些都是不确定因素,也是不可预知的因素。

如果需要提前预测,一般的做法也是编写一个自定义模块,在正式连接操作数据库之前,临时调用模块去尝试打开一下指定数据库,如果顺利打开,返回True,则说明当前数据库能连接,如果不能打开,则返回False,表示当前数据库无法正常连接。
crazy0qwer
2012-12-21 · TA获得超过3300个赞
知道大有可为答主
回答量:4020
采纳率:71%
帮助的人:1313万
展开全部
这种错误应该不能用on error 来扑捉吧?代码放上来看看。单步调试看看哪句代码有问题。把关键代码贴上来。
更多追问追答
追问
ConnStr = "Provider=SQLNCLI10.1;Data Source=js220049;User ID=sa;Password=sa;Initial Catalog=衡阳北站"
Conn.Open ConnStr
rs.CursorLocation = adUseClient
rs.Open Trim$(sql), Conn, adOpenDynamic, adLockOptimistic
Set Selectsql = rs
问题在“Conn.Open ConnStr”句
追答
额,你应该补充问题不是追问,因为我也不太懂连SQL。话说 Data Source=js220049这句不需要路径吗? 你也可以看看用On Error Resume Next放前面看看能不能运行过去,能过去就说明能捕获错误,然后看看错误信息。  Debug.Print Err.Description
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1b92564
2012-12-21
知道答主
回答量:29
采纳率:0%
帮助的人:11.9万
展开全部
klllllik;l
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友eb9c235
2012-12-21 · TA获得超过478个赞
知道小有建树答主
回答量:511
采纳率:100%
帮助的人:271万
展开全部
同一楼,
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式