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";
}
}
注釈
このクラスは、エラーが発生したときにSQL Server.NET Framework データ プロバイダーによって作成されます。 の SqlError インスタンスは によって SqlErrorCollection作成および管理され、 クラスによって SqlException 作成されます。
重大度レベルが 10 以下のメッセージは情報メッセージで、ユーザーの入力ミスによってエラーが発生した場合に表示されます。 11 から 16 までの重大度レベルはユーザーによって生成され、ユーザーが修正できます。 重大度レベルが 17 ~ 25 のエラーは、ソフトウェアまたはハードウェアのエラーです。 レベル 17、18、または 19 のエラーが発生した場合は、特定のステートメントを実行できない可能性がありますが、作業を続行できます。
重大度レベルが 19 以下の場合、SqlConnection は開いたままです。 重大度レベルが 20 以上のときは、通常、サーバーは SqlConnection を閉じます。 ただし、ユーザーは接続を再び開き、続行できます。 どちらの場合も、コマンドを実行しているメソッドによって SqlException が生成されます。
SQL Serverによって生成されるエラーの詳細については、「データベース エンジン エラーの原因と解決策」を参照してください。 重大度レベルの詳細については、「 データベース エンジン エラーの重大度」を参照してください。
プロパティ
Class |
SQL Server から返されたエラーの重大度レベルを取得します。 |
LineNumber |
Transact-SQL コマンドのバッチまたはストアド プロシージャ内の、エラーが含まれる行の番号を示します。 |
Message |
エラーを説明するテキストを取得します。 |
Number |
エラーの種類を示す番号を取得します。 |
Procedure |
エラーを生成したストアド プロシージャまたはリモート プロシージャ コール (RPC) の名前を取得します。 |
Server |
エラーを生成した SQL Server インスタンスの名前を取得します。 |
Source |
エラーを生成したプロバイダーの名前を取得します。 |
State |
エラー メッセージが データベース エンジンのコード内の複数の場所で生成される場合があります。 たとえば、複数の異なる条件に対して 1105 エラーが生成されることがあります。 エラーを生成する特定の条件はそれぞれ一意の状態コードを割り当てます。 |
メソッド
ToString() |
エラー メッセージの完全なテキストを取得します。 |