SqlException.Class 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取从用于 SQL Server 的 .NET Framework 数据提供程序返回的错误的严重性级别。
public:
property System::Byte Class { System::Byte get(); };
public byte Class { get; }
member this.Class : byte
Public ReadOnly Property Class As Byte
属性值
一个从 1 到 25 的值,指示错误的严重性级别。
示例
以下示例显示 SqlError 集合中的每个内容 SqlErrorCollection 。
using System;
using System.Data;
using System.Data.SqlClient;
using System.Text;
class Program
{
static void Main()
{
string s = GetConnectionString();
ShowSqlException(s);
Console.ReadLine();
}
public static void ShowSqlException(string connectionString)
{
string queryString = "EXECUTE NonExistantStoredProcedure";
StringBuilder errorMessages = new StringBuilder();
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
try
{
command.Connection.Open();
command.ExecuteNonQuery();
}
catch (SqlException ex)
{
for (int i = 0; i < ex.Errors.Count; i++)
{
errorMessages.Append("Index #" + i + "\n" +
"Message: " + ex.Errors[i].Message + "\n" +
"Error Number: " + ex.Errors[i].Number + "\n" +
"LineNumber: " + ex.Errors[i].LineNumber + "\n" +
"Source: " + ex.Errors[i].Source + "\n" +
"Procedure: " + ex.Errors[i].Procedure + "\n");
}
Console.WriteLine(errorMessages.ToString());
}
}
}
static private string GetConnectionString()
{
// To avoid storing the connection string in your code,
// you can retrieve it from a configuration file.
return "Data Source=(local);Initial Catalog=AdventureWorks;"
+ "Integrated Security=SSPI";
}
}
Public Sub ShowSqlException(ByVal connectionString As String)
Dim queryString As String = "EXECUTE NonExistantStoredProcedure"
Dim errorMessages As New StringBuilder()
Using connection As New SqlConnection(connectionString)
Dim command As New SqlCommand(queryString, connection)
Try
command.Connection.Open()
command.ExecuteNonQuery()
Catch ex As SqlException
Dim i As Integer
For i = 0 To ex.Errors.Count - 1
errorMessages.Append("Index #" & i.ToString() & ControlChars.NewLine _
& "Message: " & ex.Errors(i).Message & ControlChars.NewLine _
& "Error Number: " & ex.Errors(i).Number & ControlChars.NewLine _
& "LineNumber: " & ex.Errors(i).LineNumber & ControlChars.NewLine _
& "Source: " & ex.Errors(i).Source & ControlChars.NewLine _
& "Procedure: " & ex.Errors(i).Procedure & ControlChars.NewLine)
Next i
Console.WriteLine(errorMessages.ToString())
End Try
End Using
End Sub
注解
严重级别为 10 或更少的消息是信息性的,并指示用户输入的信息中出现错误导致的问题。 从 11 到 16 的严重性级别由用户生成,可由用户更正。 从 17 到 25 的严重性级别表示软件或硬件错误。 发生级别 17、18 或 19 错误时,可以继续工作,尽管可能无法执行特定语句。
当严重级别为 19 或更少时,仍 SqlConnection 保持打开状态。 当严重级别为 20 或更大时,服务器通常会关闭 。SqlConnection 但是,用户可以重新打开连接并继续。 在这两种情况下,执行命令的方法将生成 a SqlException 。
有关 SQL Server 发送的警告和信息性消息的信息,请参阅 SQL Server 文档的“故障排除”部分。
这是属性中第一SqlError个属性的Errors包装器Class。