我想将我的 VB.net 应用程序与放置在不同位置的SQL数据库服务器远程连接。
我在服务器和客户端计算机上都安装了 LogMeIn Hamachi,并在客户端计算机上加入了现有网络。
我按照本教程中提供的步骤为服务器计算机上安装的 SQL Server 启用 TCP 连接。
我使用以下连接字符串并在 Windows 窗体加载事件上调用 Hascon()
来测试连接。要么我没有收到任何错误,要么当我构建 VB.net 应用程序时应用程序也没有响应。
Private conn As New SqlConnection With {.ConnectionString = "Data Source=IP address provided by Hamachi,1433;Network Library=DBMSSOCN;Initial Catalog=SIIU;User ID=sa;Password=12345;"}
Public Function Hascon() As Boolean
Try
Sconn.Open()
Return True
Sconn.Close()
Catch ex As Exception
MsgBox(ex.Message)
Return False
End Try
End Function
我已经在互联网上搜索并尝试了所有可能的解决方案,但没有解决问题。
可能是什么问题? 有什么想法吗?
谢谢
您可以使用这样的简单函数来测试连接:
关于滨町的注意事项:
请记住,如果您使用Hamachi,则可能需要在 防火墙和防病毒软件以及您的盒子上。
这里不需要con.Close()
,因为我实现了Using
这是您应该始终为IDisposable
做的事情。
Public Function IsConnectionPossible(ByVal ConnectionString As String) As Boolean
Dim Result As Boolean = False
Try
Using con As New SqlClient.SqlConnection(ConnectionString)
'Open the connection
Try
con.Open()
Catch ex As Exception
Debug.WriteLine(ex.Message)
End Try
'Get the state
If con.State = ConnectionState.Open Then
Result = True
End If
End Using
Catch ex As Exception
Debug.WriteLine(ex.Message)
End Try
Return Result
End Function
你可以简单地这样调用:
IsConnectionPossible("Data Source=IP address provided by Hamachi,1433;Network Library=DBMSSOCN;Initial Catalog=SIIU;User ID=sa;Password=12345;")
请注意,此函数将纯粹测试连接,实现此函数以打开连接以供将来使用是不切实际的。为此,我建议使用一个类。