我开发了一个.Net应用程序,我希望通过域服务器管理的局域网中的共享文件与用户共享。当服务器启动并运行正常但服务器关闭时会出现错误。我可以访问该服务器中的sql server数据库。当服务器关闭时,它会发出致命错误并停止应用程序。如何检测服务器出现故障? 我通过以下代码连接到服务器:
Dim sql As String
Dim daCourseMaster As SqlDataAdapter
Try
sqlConn = New SqlConnection(connString)
sqlConn.Open()
sql = " ... "
daCourseMaster = New SqlDataAdapter(sql, sqlConn)
daCourseMaster.Fill(dsDataset, "table")
dvRegister = New DataView
dvRegister = dsDataset.Tables("courseRegisters").DefaultView
dgvCourseRegister.DataSource = dvRegister
Catch ex As Exception
MsgBox(Err.Description)
End Try
现在可能有不同的原因导致用户无法登录服务器:服务器名称错误或用户名或密码错误或服务器可能已关闭!如何区分这些原因让用户知道登录失败的原因可能是什么?
答案 0 :(得分:1)
假设您需要查询数据库。当您打开连接然后执行查询时,请使用Try-Catch Block并拦截SqlException。它有不同的代码,因此您可以测试连接相关代码
Try
Using conn as new SqlConnection(...)
conn.Open()
....
End Using
Catch (connEx as SqlException)
' sql - related error handling
Catch (ex as Exception)
' here handle all other exception
End Try
通过这种方式,您可以让用户知道连接已丢失,并且以后再次尝试"或类似的东西
答案 1 :(得分:1)
在执行共享的代码之前使用此代码(如果是Sub中的代码):
If Not My.Computer.Network.Ping(" You Server Name or Server IP") Then Exit Sub
或(如果函数中的代码):
If Not My.Computer.Network.Ping(" You Server Name or Server IP") Then Exit Function