2009-06-04 51 views
5

Tengo que aumentar el período de tiempo de espera. A continuación está mi código.Para aumentar el período de tiempo de espera

Private Function GetConnectionInstance() As SqlConnection 
    Dim objConn As SqlConnection 
    Dim strConnection As String 
    strConnection = ConfigurationSettings.AppSettings("conn") 

    Try 
     objConn = New SqlConnection(strConnection) 
    Catch ex As Exception 
    End Try 

    Return objConn 
End Function 

Qué código tengo que agregar arriba para aumentar el tiempo de espera.

+0

También en lugar de Try/Catch use Using. Cerrará su conexión si en ambos casos: una excepción o después de que finalice su código – abatishchev

+0

¿Quiere decir el tiempo de espera para conectarse a la base de datos o el tiempo de espera para ejecutar cada consulta? – Guffa

+0

@abatishchev, aunque usar 'usar' suele ser una buena recomendación, en este caso no funcionaría dado que el objeto SqlConnection se devuelve del método. –

Respuesta

7

es necesario agregar el siguiente elemento en la cadena de conexión:

Conexión Tiempo de espera = 30;

Si necesita cambiar tiempo de espera sólo para la conexión de destino, no en toda la aplicación, hacer a continuación:

Dim connString as String = ConfigurationSettings.AppSettings("conn") 
Dim builder As New SqlConnectionStringBuilder(connString) 
builder.ConnectTimeout = 30; 
Dim connection = New SqlConnection(builder.ToString()) 
+0

Aparece en .NET 3.5, que la clase SqlConnectionStringBuilder ya no contiene una propiedad de tiempo de espera. – eidylon

+0

@eidylon: este nombre de propiedad es ConnectTimeout http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.connecttimeout.aspx – abatishchev

3

intente lo siguiente:

objConn.ConnectionTimeout = 600

En lugar de configurarlo en la conexión, puede establecer CommandTimeout en un SqlCommand:

objCmd.CommandTimeout = 600 
+1

SqlConnection.ConnectionTimeout es propiedad de solo lectura http: // msdn .microsoft.com/es-us/library/system.data.sqlclient.sqlconnection.connectiontimeout.aspx – abatishchev

+1

Oy, mi mal. Estaba pensando en SqlCommand.CommandTimeout, que se puede escribir. – jrista

1

Puede modificar la cadena de conexión agregando "Tiempo de espera de conexión = 30". El valor predeterminado es 15 y está en segundos. Sin embargo, es importante saber dónde ocurre realmente el tiempo de espera. Debe consultar este tema: Timeout not being honoured in connection string.

0

Encontré que la respuesta a este problema no era realmente el tiempo de espera como tal, era porque el objeto SqlConnection no se estaba cerrando en bucles.

Cuestiones relacionadas