SQLデータベースを照会するためのLinqからSQLへのC#MVC Webアプリケーションの構築。 死の黄色い画面が表示されないように、データベースをオフラインにする必要がある場合は、例外をキャッチしようとしています。データベースがオフラインのときのLinqToSql例外処理
デバッグ後、私は2つのことを見つけました。まず、DataContextを作成しても、SQL Serverが使用可能かどうかはチェックされません。次に、行変数に格納されているエラーメッセージ(または例外!?)があります。
以下のコードのCatch文には決して達しません。だから、ViewのModelからデータを読み込もうとすると、黄色の死の画面が表示されます。
なぜキャッチステートメントに達していませんか?
コード:
try
{
//Creating DB Context
var con = ConfigurationManager.ConnectionStrings["teststring"].ConnectionString;
TestDataContext db = new TestDataContext(con);
//Querying database. This should cause an exception to be thrown!?
var rows = from s in db.Table
orderby s.Id descending
select s;
//Returning the View with the data
return View(rows);
}
catch (Exception ex)
{
ErrorInfo err = new ErrorInfo("Something went wrong when trying to query the database. See the log for details.");
err.WriteToErrorLog(ex);
return View("Error", err);
}
実行が終了したため、dbへの実際の呼び出しはビューにあります。まずそれを具体化する必要があります。 '.ToList()'を追加し、ビューにリストを送ります。 –
Thx @OfirWinegarten。それは受け入れられた答えでなければなりません。 – Andreas