识别 C# 中的 SQL 异常

本文关键字:异常 SQL 中的 识别 | 更新日期: 2023-09-27 17:57:02

如何捕获SQL异常及其错误代码(错误号)以识别C#中确切抛出的异常?例如,数据库处于脱机状态或其他表中有引用行,因此SQL不允许我删除行,但是我如何准确确定Catch中的问题是什么,以便我可以在我的应用程序中向用户显示消息

识别 C# 中的 SQL 异常

您需要

将数据库代码放入try ... catch块中,然后(假设您对SQL Server使用 ADO.NET)然后捕获SqlException

try
{
   // your database code here
}
catch(SqlException sqlEx)
{ 
   foreach(SqlError error in sqlEx.Errors)
   {
       // you can inspect the individual errors, their code etc. here
   }
}

SqlException对象将包含一组SqlError对象,这些对象非常详细地描述发生的错误 - 包括行号、错误代码和所有内容。

其他数据库将具有类似的结构 - 检查您的文档!

在 .net 异常类层次结构中,每种类型的异常都有特定的编号,您将在此处找到一些有用的材料