Cuando ejecuto una consulta con el siguiente método, obtengo un tiempo de espera.
Entonces mi pregunta es: ¿cómo puedo establecer el tiempo de espera en 180 segundos?
Estoy usando la conexión para llenar el conjunto de datos con el resultado de la consulta.
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; }Puede configurar CommandTimeout de SelectCommand :
adapter.SelectCommand.CommandTimeout = 180; // default is 30 secondsSi no puede establecer una conexión con la base de datos y también desea aumentar ese tiempo de espera, debe hacerlo en la cadena de conexión, por ejemplo (el valor predeterminado es 15 segundos):
"Data Source=(local);Connection Timeout=30;Initial Catalog=AdventureWorks; Integrated Security=SSPI;" Tenga en cuenta que debe usar la declaración de using para su conexión y otros objetos que implementan IDisposable como OleDbDataAdapter . De esa manera, se asegura de que todos los recursos no administrados se eliminen correctamente:
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; }