SqlException.Class プロパティ
.NET Framework Data Provider for SQL Server が返したエラーの重大度レベルを取得します。
Public ReadOnly Property Class As Byte
[C#]
public byte Class {get;}
[C++]
public: __property unsigned char get_Class();
[JScript]
public function get Class() : Byte;
プロパティ値
エラーの重大度レベルを示す 1 ~ 25 の値。
解説
重大度レベルが 10 以下のメッセージは、情報メッセージです。これらは、ユーザーが入力した情報の誤りが原因の問題を示します。重大度レベルが 11 ~ 16 のメッセージは、ユーザーが生成し、修正できます。重要度レベルが 17 ~ 25 のメッセージは、ソフトウェアまたはハードウェアのエラーを示します。レベル 17、18、または 19 のエラーが発生した場合は、作業は続行できますが、一部のステートメントが実行できないことがあります。
重大度レベルが 19 以下のときは、 SqlConnection は開いたままになります。重大度レベルが 20 以上のときは、通常、サーバーは SqlConnection を閉じます。ただし、ユーザーが接続を再び開いて、処理を継続できます。いずれの場合でも、 SqlException は、コマンドを実行しているメソッドによって生成されます。
SQL Server が送信する警告メッセージと情報メッセージについては、『SQL Server ドキュメント』の「トラブルシューティング」を参照してください。
これは、 Errors プロパティ内にある最初の SqlError の Class プロパティのラッパーです。
使用例
[Visual Basic, C#, C++] SqlErrorCollection コレクション内の各 SqlError を表示する例を次に示します。
Public Sub ShowSqlException()
Dim mySelectQuery As String = "SELECT column1 FROM table1"
Dim myConnection As New SqlConnection ("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Sample;")
Dim myCommand As New SqlCommand(mySelectQuery, myConnection)
Try
myCommand.Connection.Open()
Catch e As SqlException
Dim errorMessage As String = "Message: " & e.Message & vbCrLf & _
"Source: " & e.Source & vbCrLf & _
"State: " & e.State & vbCrLf & _
"Procedure: " & e.Procedure & vbCrLf
Dim log As System.Diagnostics.EventLog = New System.Diagnostics.EventLog()
log.Source = "My Application"
log.WriteEntry(errorMessage)
Console.WriteLine("An exception occurred. Please contact your system administrator.")
End Try
End Sub
[C#]
public void ShowSqlException()
{
string mySelectQuery = "SELECT column1 FROM table1";
SqlConnection myConnection =
new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Sample;");
SqlCommand myCommand = new SqlCommand(mySelectQuery,myConnection);
try
{
myCommand.Connection.Open();
}
catch (SqlException e)
{
string errorMessage = "Message: " + e.Message + "\n" +
"Source: " + e.Source + "\n" +
"State: " + e.State + "\n" +
"Procedure: " + e.Procedure + "\n";
System.Diagnostics.EventLog log = new System.Diagnostics.EventLog();
log.Source = "My Application";
log.WriteEntry(errorMessage);
Console.WriteLine("An exception occurred. Please contact your system administrator.");
}
}
[C++]
public:
void ShowSqlException()
{
String* mySelectQuery = S"SELECT column1 FROM table1";
SqlConnection* myConnection =
new SqlConnection(S"Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Sample;");
SqlCommand* myCommand = new SqlCommand(mySelectQuery,myConnection);
try
{
myCommand->Connection->Open();
}
catch (SqlException* e)
{
String* errorMessage = String::Concat(
String::Format( S"Message: {0}\nSource: {1}\n", e->Message, e->Source ),
String::Format( S"State: {0}\nProcedure: {1}\n", __box(e->State), e->Procedure ));
System::Diagnostics::EventLog* log = new System::Diagnostics::EventLog();
log->Source = S"My Application";
log->WriteEntry(errorMessage);
Console::WriteLine(S"An exception occurred. Please contact your system administrator.");
}
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
参照
SqlException クラス | SqlException メンバ | System.Data.SqlClient 名前空間 | Number | Source | State | Server | Message | Procedure | LineNumber