質問

い漁具体的にはSQLサーバのタイムアウト例外を除できるように取り扱いとは異なります。知っていうキャッチSqlExceptionトレージエンジンはインデックスの場合はメッセージ文字列が含まれる"タイムアウトがした疑問がある場合は、よりよくしていきますか?

try
{
    //some code
}
catch (SqlException ex)
{

    if (ex.Message.Contains("Timeout"))
    {
         //handle timeout
    }
    else
    {
         throw;
    }
}
役に立ちましたか?

解決

チェック、タイムアウトのダウンロードいただけまチェックの値ます。ます。であれば-2しいタイムアウト状態です。

-2のエラーコード、タイムアウトから返されたDBNETLIB、MDACドライバーのためのSQLサーバーです。この見学することができますのダウンロード リフレクタ, みづます。データです。SqlClient.TdsEnumsのためのTIMEOUT_EXPIRED.

コードを読む:

if (ex.Number == -2)
{
     //handle timeout
}

コードを不全:

try
{
    SqlConnection sql = new SqlConnection(@"Network Library=DBMSSOCN;Data Source=YourServer,1433;Initial Catalog=YourDB;Integrated Security=SSPI;");
    sql.Open();

    SqlCommand cmd = sql.CreateCommand();
    cmd.CommandText = "DECLARE @i int WHILE EXISTS (SELECT 1 from sysobjects) BEGIN SELECT @i = 1 END";
    cmd.ExecuteNonQuery(); // This line will timeout.

    cmd.Dispose();
    sql.Close();
}
catch (SqlException ex)
{
    if (ex.Number == -2) {
        Console.WriteLine ("Timeout occurred");
    }
}

他のヒント

こちら: http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.framework.adonet/2006-10/msg00064.html

きを読もう トーマスWeingartner 書き:

タイムアウト:SqlException.番号==-2ことADO.NET エラーコード)
一般にネットワークエラー:SqlException.数=11
行き詰まり:SqlException.番号==1205(これはまさにSQLサーバーエラーコード)

...

取り扱いを、"一般ネットワークエラー"として、タイムアウト例外です。だが、事例時更新-挿入-削除クエリを長期のトリガが発生します。

更新c#6:

    try
    {
        // some code
    }
    catch (SqlException ex) when (ex.Number == -2)  // -2 is a sql timeout
    {
        // handle timeout
    }

非常に簡単で素敵な眺める!!

きむすびにしていただきました値のSqlException.ErrorCodeですか?仕事をこなすことができま。

有する場合に使用するのが良いでしょうの確認コード -2146232060.

うに設定してstatic定数のデータのコードです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top