【发布时间】:2015-11-02 05:09:40
【问题描述】:
我正在构建一个连接到 SQL Server 和数据库的 C# 应用程序。在我的网络上,运行服务器的 PC 在我的路由器上有一个保留的 IP。因此,这是在 SQLConnection 失败时挂起的代码部分。代码如下:
public static Boolean RevisarEstado(String ip, String usuario, String pass)
{
Boolean estado = false;
SqlConnection miconexion = new SqlConnection("Data source=" + ip + ";DataBase=Final_Algoritmos;User ID=" + usuario + ";Password=" + pass);
try
{
miconexion.Open();
estado = true;
miconexion.Close();
}
catch (Exception) { estado = false; miconexion.Close(); }
return estado;
}
如果SqlConnection的参数是OK的,应用程序不会挂起,但如果不正确,应用程序会挂起。我正在使用 Windows 窗体 C# 进行编程。
我认为我必须在检查连接的过程中使用线程,在连接失败时使用状态栏。所以。帮我!请!
【问题讨论】:
-
你试过在连接字符串中设置连接超时吗?例如
;Connection Timeout=10;其中 10 以秒为单位。 -
如果您想在辅助线程上测试连接,请继续执行此操作。如果您在执行此操作时确实遇到问题,那么是时候在这里发布问题了。
-
感谢您的评论@Loathing,我试过了,但它挂了超过 10 秒
-
我想在第二个线程中做,使用 OpenAsync 方法,但我不知道如何使用它
-
与您的问题无关,但您可能想查看SqlConnectionStringBuilder 类,它比使用字符串连接更可靠。例如,如果用户想在密码中包含
;怎么办?连接字符串生成器自动处理分号的转义;
标签: c# winforms user-interface freeze sqlconnection