SORU
27 AĞUSTOS 2008, ÇARŞAMBA


Nasıl SQL Server zaman aşımı özel durumları yakalamak

Farklı şekilde ele alınması böylece özellikle SQL server zaman aşımı özel durumları yakalamak istiyorum. Eğer ileti dize "" eğer yapacak daha iyi bir yolu var mı? merak ediyorum zaman Aşımı varsa bu SqlException yakalamak ve sonra kontrol edebileceğimi biliyorum

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

    if (ex.Message.Contains("Timeout"))
    {
         //handle timeout
    }
    else
    {
         throw;
    }
}

CEVAP
15 EYLÜL 2008, PAZARTESİ


Bir zaman aşımı için kontrol etmek için, eski değerini kontrol inanıyorum.Numarası. Eğer -2, daha sonra ise bir zaman aşımı durumu var.

-2 zaman aşımı hata kodu, DBNETLİB döndü, SQL Server için MDAC sürücü. Bu Reflector, indirme ve Sistem altında bakarak görülebilir.Veri.SqlClient.TİMEOUT_EXPİRED için TdsEnums.

Kodunuz şöyle olacaktır:

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

Kod hatası göstermek için:

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");
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Alfredo Garcia

    Alfredo Garc

    25 Mayıs 2007
  • Kiddyzuzaa

    Kiddyzuzaa

    25 ŞUBAT 2014
  • Philip DeFranco

    Philip DeFra

    16 EYLÜL 2006