如何在c#中的sql查询连接出现错误时使用try catch?如何对sql查询超时使用try catch错误?
如果我使用下面的简单代码,它可以工作,但发生错误所需的时间太长。我怎样才能让try catch更快地处理错误?
try
{
//sql command
}
catch
{
//display connection error
}
如何在c#中的sql查询连接出现错误时使用try catch?如何对sql查询超时使用try catch错误?
如果我使用下面的简单代码,它可以工作,但发生错误所需的时间太长。我怎样才能让try catch更快地处理错误?
try
{
//sql command
}
catch
{
//display connection error
}
try-catch
会在发生异常时立即捕获异常,但除了捕获超时发生前的超时异常之外的其他异常发生在之前。对于SqlCommand
,默认的超时时间为30秒,但你可以通过设置CommandTimeout
属性进行更改:
try
{
var command = new SqlCommand("...");
command.CommandTimeout = 5; // 5 seconds
command.ExecuteNonQuery();
}
catch(SqlException ex)
{
// handle the exception...
}
请通过以下方式:
try
{
con.open();
.
.//Database operation
.
con.close();
}
catch(Exception ex)
{
MessageBox.Show("Error: "+ex.Message);//If exception will come, it will handle it here.
}
finally
{
con.close();
}
,直到出现你无法捕捉异常。如果你想早点抓住它,可以更快地发生。具体来说,缩短超时时间。
我知道如何减少ColdFusion中的超时时间。我必须看看this page以了解如何在.net中执行此操作。
+1“让错误更快发生”。 – 2013-05-14 12:10:23
catch (SqlException ex)
{
if (ex.Number == -2)
{
//handle timeout
}
}
尝试给出一个解释,而不仅仅是一小段代码。 – 2015-06-10 17:21:00
看来你的命令超时太长。如果您使用的是ADO.NET,EF,Linq2SQL或其他? – dasheddot 2013-05-14 12:01:40
使用“抛出新的Exception()”来引发闪电般的异常。 J/K – Serge 2013-05-14 12:02:34
如果您担心的错误是超时,那么根据定义,您无法更快地处理它 - 超时的整个过程就是它耗时太长。如果您认为确定超时时间过长,请减少数据库连接的超时限制。 – anaximander 2013-05-14 12:03:21