SqlError 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
收集與 SQL Server 所傳回之警告或錯誤相關的資訊。
public ref class SqlError sealed
[System.Serializable]
public sealed class SqlError
public sealed class SqlError
[<System.Serializable>]
type SqlError = class
type SqlError = class
Public NotInheritable Class SqlError
- 繼承
-
SqlError
- 屬性
範例
下列範例會顯示集合內的每一個 SqlErrorSqlErrorCollection 。
using Microsoft.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";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
try
{
command.Connection.Open();
command.ExecuteNonQuery();
}
catch (SqlException ex)
{
DisplaySqlErrors(ex);
}
}
}
private static void DisplaySqlErrors(SqlException exception)
{
for (int i = 0; i < exception.Errors.Count; i++)
{
Console.WriteLine("Index #" + i + "\n" +
"Error: " + exception.Errors[i].ToString() + "\n");
}
Console.ReadLine();
}
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";
}
}
備註
發生錯誤時,.NET Framework Data Provider for SQL Server 建立這個類別。 的 SqlError 實例會由 SqlErrorCollection 建立及管理,接著由 SqlException 類別建立。
安全性層級 10 或以下的訊息是告知性的訊息,用以指出問題產生的原因是使用者輸入了錯誤的資訊。 從 11 到 16 的嚴重性層級是由使用者產生,而且可由使用者更正。 17 到 25 的嚴重性層級表示軟體或硬體錯誤。 當發生層級 17、18 或 19 錯誤時,您可以繼續運作,雖然您可能無法執行特定的語句。
當嚴重性層級為 19 或低於 19 時,SqlConnection 仍保持開啟。 發生 20 或以上的安全性層級時,伺服器通常會關閉 SqlConnection。 但是,使用者可以再次開啟連線,然後繼續進行。 在這兩個情況中,SqlException 皆由執行該命令的方法所產生。
如需SQL Server所產生的錯誤詳細資訊,請參閱Database Engine 錯誤的原因和解決方式。 如需嚴重性層級的詳細資訊,請參閱 Database Engine 錯誤嚴重性。
屬性
Class |
取得從 SQL Server 傳回的錯誤之嚴重性層級。 |
LineNumber |
取得 Transact-SQL 命令批次內的行號或包含錯誤的預存程序。 |
Message |
取得描述錯誤的文字。 |
Number |
取得識別錯誤類型的值。 |
Procedure |
取得產生錯誤之預存程序或遠端程序呼叫 (RPC) 的名稱。 |
Server |
取得產生錯誤的 SQL Server 的執行個體名稱。 |
Source |
取得產生錯誤之提供者的名稱。 |
State |
某些錯誤訊息可能會在資料庫引擎程式碼中的多個點上引發。 例如,1105 錯誤可以因為許多不同情況而引發。 每個引發錯誤的特定條件會指派唯一的狀態碼。 |
方法
ToString() |
取得錯誤訊息的完整文字。 |