Public SQL_conn As New System.Data.SqlClient.SqlConnection()
Public SQL_cmd As New System.Data.SqlClient.SqlCommand()
Public SQL_cmd_str As String
Public Sub Conn_SQL()
SQL_conn.ConnectionString = "Data Source=XXX;User ID=test;password=test;Initial Catalog=student_info;timeout=10;Asynchronous Processing=true"
Try
SQL_conn.Open()
Catch ex As Exception
MsgBox("数据库连接失败!" & Chr(13) & Chr(13) & "错误描述:" & Chr(13) & Chr(13) & ex.Message, MsgBoxStyle.Exclamation, "数据库错误")
End
End Try
End Sub
如上, 在模块中定义了声明了公有变量sql_cmd.连接数据库过程也放在模块中.二者在窗体中频繁使用.
程序运行时不定时会出现 未处理sqlexception:找不到存储过程'' 的错误. catch下来的msg多达十数行.提示错误行位置:
SQL_cmd_str = "......"
SQL_cmd.Connection = SQL_conn
SQL_cmd.CommandText = SQL_cmd_str
SQL_cmd.ExecuteNonQuery() '<------------------------------错误定位在该行
程序无任何编译错误,在不同的机器上有不同的表现,编译后在机房多台机器上测试,分别有一半机器报错,一半机器正常运行.
原因未知,可能的解决办法:(本人程序按此法解决)
在以上位置插入:
SQL_cmd.Dispose()
SQL_cmd = New SqlClient.SqlCommand
销毁后重新实例化.从此再无报错.