Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara menangkap pengecualian batas waktu SQLServer

Untuk memeriksa batas waktu, saya yakin Anda memeriksa nilai ex.Number. Jika -2, maka Anda memiliki situasi timeout.

-2 adalah kode kesalahan untuk batas waktu, dikembalikan dari DBNETLIB, driver MDAC untuk SQL Server. Ini dapat dilihat dengan mengunduh Reflektor, dan mencari di bawah System.Data.SqlClient.TdsEnums untuk TIMEOUT_EXPIRED.

Kode Anda akan berbunyi:

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

Kode untuk menunjukkan kegagalan:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Fungsi LEFT() Bekerja di SQL Server (T-SQL)

  2. Bagaimana cara menghapus tag HTML dari string di SQL Server?

  3. Menghubungkan SQL Server ke PostgreSQL

  4. Dapatkan semua orang tua untuk seorang anak

  5. Mesin Virtual Azure untuk Penggunaan SQL Server