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

  • BaaaStuds's channel

    BaaaStuds's

    10 Mart 2009
  • Matus Slovak

    Matus Slovak

    5 Temmuz 2007
  • Unbox Therapy

    Unbox Therap

    21 Aralık 2010