我正在尝试获取SQLConnection的尝试次数,以通知用户这些尝试。下面你可以看到代码,那里应该发生魔法我将是尝试的次数。连接"con"抛出了很多SqlException,但我无法捕捉到它们,如下所示databaseConnection表示连接字符串。出于测试目的,它目前是空的。我敢打赌,我错过了一些东西,但我不知道是什么,因为我是C#SQL编程的新手。"txtProgressbarWorking"是UI中的一个标签。
int i = 1;
con = new SqlConnection(databaseConnection);
try
{
con.Open();
}
catch(SqlException s)
{
txtProgressbarWorking.Content = "Connecting... " + (++i);
}
这个代码有几个错误:
1) 你是在循环中调用这个吗?否则,i
变量将不会递增。
2) SqlConnection.Open()
抛出了几种异常——不仅仅是SqlException
,我认为这就是为什么你"无法捕捉到它们"的原因。理想情况下,您应该指定每个异常或捕获更高级别的System.SystemException
。
3) 增加进度条的代码位于异常处理程序的catch块中,只有在捕捉到异常时才会执行。如果您实际上是在循环中调用此代码,那么您可能希望将catch块中的代码移到try块中。
4) 您的++i
应该是i++
,以便i
在语句之后递增;或者将i
初始化为零而不是1。按照现在的方式,catch块中i
的第一个值将是2。
我建议您查看一下MSDN关于SqlConnection.Open Method()的文档][1]https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.open%28v=vs.110%29.aspx