2015-06-18 24 views
8

Aşağıdaki yöntemle bir sorgu yürüttüğümde, bir zaman aşımı alıyorum.DataAdapter'ın zaman aşımı süresi 3 dakikaya nasıl yükseltilir?

Bu yüzden sorum şu: Zaman aşımını 180 saniyeye nasıl ayarlayabilirim?

VeriSet'i sorgu ile doldurmak için bağlantı kullanıyorum.

internal static DataSet executeQuery(string queryString) 
{ 
    // #connection 
    DataSet dataSet = new DataSet(); 
    string connectionString = Connection.connectionStringSQL01NavProvider(); 
    OleDbConnection connection = new OleDbConnection(connectionString); 
    OleDbDataAdapter adapter = new OleDbDataAdapter(queryString, connectionString); 

    // Open the connection and fill the DataSet. 
    connection.Open(); 
    try 
    { 
     adapter.Fill(dataSet); 
     DataTable dt = new DataTable(); 
     dt = dataSet.Tables[0]; 
     DataRow dr; 
     try 
     { 
      dr = dt.Rows[0]; 
     } 
     catch 
     { 

     } 
    } 
    catch (Exception ex) 
    { 
     Console.WriteLine(ex.Message); 
     System.Windows.Forms.MessageBox.Show("Error executeQuery().! " + ex.Message); 
    } 

    return dataSet; 
} 

cevap

20

Sen SelectCommand ait CommandTimeout ayarlayabilirsiniz: Eğer veritabanına bağlantı kurmak yapamıyorsanız

adapter.SelectCommand.CommandTimeout = 180; // default is 30 seconds 

ve ayrıca bu zaman aşımı artırmak istiyorum:

connection.ConnectionTimeout = 180;  // default is 15 seconds 

using -statement için kullanmanız gerektiğini unutmayın. Bağlantınız ve diğer nesneler, OleDbDataAdapter gibi IDisposable uygular. Bu şekilde, tüm yönetilmeyen kaynakların düzgün bir şekilde yerleştirildiğinden emin olursunuz:

internal static DataSet executeQuery(string queryString) 
{ 
    DataSet dataSet = new DataSet(); 
    string connectionString = Connection.connectionStringSQL01NavProvider(); 
    using (var connection = new OleDbConnection(connectionString)) 
    using(var adapter = new OleDbDataAdapter(queryString, connectionString)) 
    { 
     try 
     { 
      adapter.Fill(dataSet); // you dont need to open/close the connection with Fill 
     } catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
      System.Windows.Forms.MessageBox.Show("Error executeQuery().! " + ex.Message); 
     } 
    } 

    return dataSet; 
}