SqlException 类
每当 SQL Server .NET Framework 数据提供程序遇到服务器生成的错误时,都将创建此类。(客户端错误作为标准的公共语言运行库异常引发。)SqlException 始终包含至少一个 SqlError 实例。
严重级别小于等于 10 的消息是信息性消息,它们指示由用户输入的信息中的错误所导致的问题。严重级别 11 至 16 的消息是由用户生成的,可以由用户更正。严重级别 17 至 25 的消息指示软件或硬件错误。当发生严重级别为 17、18 或 19 的错误时,虽然可能无法执行特定语句,但仍可以继续工作。
当严重级别小于等于 19 时,SqlConnection 保持打开状态。当严重级别大于等于 20 时,服务器通常会关闭 SqlConnection。但是,用户可以重新打开连接并继续操作。在这两种情况下,执行命令的方法都会生成 SqlException。
有关 SQL Server 所发送的警告和信息性消息的信息,请参见“SQL Server 联机丛书”中的“疑难解答”一节。SqlException 类映射到 SQL Server 严重级别。
1 |
eg:
1 public static void ShowSqlException(string connectionString) 2 { 3 string queryString = "EXECUTE NonExistantStoredProcedure"; 4 StringBuilder errorMessages = new StringBuilder(); 5 6 using (SqlConnection connection = new SqlConnection(connectionString)) 7 { 8 SqlCommand command = new SqlCommand(queryString, connection); 9 try 10 { 11 command.Connection.Open(); 12 command.ExecuteNonQuery(); 13 } 14 catch (SqlException ex) 15 { 16 for (int i = 0; i < ex.Errors.Count; i++) 17 { 18 errorMessages.Append("Index #" + i + "\n" + 19 "Message: " + ex.Errors[i].Message + "\n" + 20 "LineNumber: " + ex.Errors[i].LineNumber + "\n" + 21 "Source: " + ex.Errors[i].Source + "\n" + 22 "Procedure: " + ex.Errors[i].Procedure + "\n"); 23 } 24 Console.WriteLine(errorMessages.ToString()); 25 } 26 } 27 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~