私はエンドユーザーフォームにC#を使用しています。私はSQLサーバーから取得したエラーメッセージを解析する必要があります。通常、エンドユーザーは画像のようなメッセージを受け取ります。これを解析してエンドユーザに、彼がそこで不器用なのではなく理解しているものを与える方法? (「名前テストは、このコンテキストでは許可されていない...」のような画像である。)sqlexceptionエラーメッセージの解析
答えて
exception.ToString()は一般的にあなたの画像のような文字列を生成します。 exception.Messageにはエラーメッセージだけが含まれ、スタックトレースは含まれません。
使用Exception.ToString完全なスタック・トレースを表示します。 Exception.Messageを使用すると、エラーのテキスト記述部分だけを取得できます。
さらに、SqlException.ClassとSqlException.Numberのプロパティを調べることで、コード内でこれらの例外を処理する方法を適切に判断することができます。 SqlException.Numberプロパティはsys.messagesビュー内のエントリに対応します。たとえば、1205はデッドロック例外の番号です。 SqlException.Class = 11の場合、これは並行処理の例外です。
SqlException.Errorsプロパティは、個々のerrorsに関するより詳細な情報を含むSqlErrorオブジェクトの一覧です。データベースへの単一のRPC呼び出しによって複数の例外が発生する可能性があるため、これらのエラーを確認して、発生したすべてを確認します。
SQLでエラーを報告するときは、SQLメッセージが開発者に何か起こるかどうかを常にジレンマにするだけでなく、アプリケーションのユーザーに有用な情報を提供するというジレンマがあります。私たちは、SQLメッセージをXML文字列に構造化して、エラーに関する有用な情報をすべて提供する技術を開発しました。これにより、呼び出し元が必要に応じて使用できるようになりました。あなたは以下のURLでコードプロジェクトにこの技術上の私の記事を見ることができます:
http://www.codeproject.com/Articles/1076477/SQL-Server-Structure-Error-Handling
- 1. マシン解析可能なエラーメッセージ
- 2. 解析中のSonarQube認証エラーメッセージ
- 3. ビジュアルスタジオのエラーメッセージを解析するための正規表現
- 4. Elm:JSONでのステータスコードの解析(潜在的なエラーメッセージ付き)
- 5. エラーメッセージ:「プロジェクトのビルドエラー:非解析可能なPOM
- 6. ElementTreeからより良い解析エラーメッセージを取得
- 7. Pythonでjsonを解析中にエラーメッセージが表示される
- 8. LinuxでJQ解析エラーメッセージを表示しない
- 9. 解釈バックトレースのエラーメッセージ
- 10. JSON解析エラー:エラーメッセージを返すときにJSON文字列を解析できません
- 11. 理解ノード.jsエラーメッセージ
- 12. ActiveRecordのエラーメッセージの手動解析。テンプレート変数を置き換える方法
- 13. SqlExceptionエラーコード
- 14. CでのSqlException#
- 15. Entity FrameworkのSQLException
- 16. TransactionScope内のSqlException
- 17. のSQLException varchar型
- 18. 解析:: RecDescentの解析サブ名
- 19. Windowsバッチ:ログのエラーメッセージを解析してコマンドを実行する方法
- 20. mysqlのエラーメッセージを解析する - それは正しい方法ですか?
- 21. エイリアス解析vs.ポインタ解析とポイントツー解析
- 22. XMLを解析して、XMLを解析する際のXMLの解析
- 23. C#の解析の理解
- 24. 解析/解析とは何ですか?
- 25. ログ解析ツール(フィルタリング/グループ化/マルチスレッド解析)
- 26. 解析のJSON
- 27. ソープメッセージの解析
- 28. アクセスログの解析
- 29. アンドロイドスクリーンダンプファイルの解析
- 30. ストアドプロシージャの解析
exception.ToString()一般的に、あなたの写真のような文字列を生成します。 exception.Messageにはエラーメッセージだけが含まれ、スタックトレースは含まれません。 – jlew
それは仲間でした、ありがとう! – Sin5k4
正式な回答に変換されました – jlew