Rei*_*ica 12 c# sqlexception .net-3.5
我有一个记录器,记录我们内部应用程序的异常信息.
当我们记录SQL异常时,如果我们能够看到导致异常的实际查询,那么它将非常有用.
有没有办法实现这个目标?
Ste*_*ven 17
在SqlException
不持有参考SqlCommand
导致异常.在您的记录器中无法执行此操作.你可以做的是在执行SqlCommand
它的方法中捕获SqlException 并将其包装在更具描述性的异常中.例:
using (var command = new SqlCommand(connection, "dbo.MyProc"))
{
try
{
command.Execute();
}
catch (DbException ex)
{
throw new InvalidOperationException(ex.Message + " - " + command.Text, ex);
}
}
Run Code Online (Sandbox Code Playgroud)
这样您就可以记录这个更具表现力的异常.