Estoy usando VSTS 2008 + ADO.Net + C# + .Net 3.5 + SQL Server 2008. Estoy usando ADO.Net en el lado del cliente para conectarme al servidor de base de datos para ejecutar un procedimiento de tienda, luego regreso resultado del procedimiento de la tienda.Configuración de tiempo de espera para SQL Server
Aquí está mi código. Tengo dos cuestiones sobre el tiempo de espera,
Si no establece explícitamente ningún ajuste relacionado de tiempo de espera, para la conexión al servidor de base de datos, ¿hay alguna configuración de tiempo de espera (por ejemplo, si no se puede conectar al servidor de base de datos para una cierta cantidad predeterminada de tiempo, habrá alguna excepción de tiempo de espera?)?
Si no establezco explícitamente ninguna configuración relacionada con el tiempo de espera, para la ejecución del procedimiento de almacenamiento, ¿hay alguna configuración de tiempo de espera (por ejemplo, si no puede recuperar los resultados del servidor al cliente ADO.Net durante un período de tiempo predeterminado, habrá alguna excepción de tiempo de espera?)?
using (SqlConnection currentConnection = new SqlConnection("Data Source=.;Initial Catalog=TestDB;Trusted_Connection=true;Asynchronous Processing=true")) { // check current batch conut currentConnection.Open(); using (SqlCommand RetrieveOrderCommand = new SqlCommand()) { RetrieveOrderCommand.Connection = currentConnection; RetrieveOrderCommand.CommandType = CommandType.StoredProcedure; RetrieveOrderCommand.CommandText = "prc_GetOrders"; RetrieveBatchCountCommand.Parameters.Add("@Count", SqlDbType.Int).Direction = ParameterDirection.Output; RetrieveBatchCountCommand.ExecuteNonQuery(); int rowCount = Convert.ToInt32(RetrieveOrderCommand.Parameters["@Count"].Value); } }
Th anks gbn!¿Qué tipo de excepción se arrojará o, en otras palabras, qué tipo de excepción deberíamos detectar en nuestro código para manejar el problema del tiempo de espera? – George2
En SSMS, obtengo el "Tiempo de espera caducado. El tiempo de espera transcurrido antes de la finalización de la operación o el servidor no responde". Puedes probar usando WAITFOR DELAY '00: 00: 40 'para forzar una espera de 40 segundos y una excepción para el tiempo de espera de Command. Para el tiempo de espera de conexión, puede inventar un nombre de servidor e intentar conectarse. – gbn
Gracias, para el tiempo de espera del comando, ¿qué tipo de excepción debe detectarse? – George2