none
tiempo de espera agotado en visual studio 2010 RRS feed

  • Pregunta

  • Hola buen dia, espero me puedan orientar, tengo una aplicacion en vusual studio 2010 con una base de datos sql server 2008, tengo varias consultas a la base de datos que no me crean dificualtades pero con una en especial me manda el siguiente error: Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding. la consulta la he ejecutado dentro del sql y su duracion es de 1 seg, no tendria que tener mayor problema en devolver a la aplicacion dicha información. Espero me haya explicado
    • Cambiado Enrique M. Montejo lunes, 2 de febrero de 2015 6:58 Pregunta relacionada con el acceso a datos con SQL Server.
    jueves, 29 de enero de 2015 14:38

Todas las respuestas

  • Hola, cómo recuperas la info de esa consulta en tu aplicación? Puede que ese timeout sea por otra cosa y no popr la ejecución de la consulta en sí misma.


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    jueves, 29 de enero de 2015 15:20
  • mira te paso el codigo de como recupero la informacion

     Public Shared Function RegresaDataSet(ByVal StringConexion As String, ByVal SqlCommand As SqlCommand)
            Dim ds As DataSet = New DataSet()
            Try
                SqlCommand.Connection = New SqlConnection(StringConexion)
                SqlCommand.Connection.Open()
                Dim da As SqlDataAdapter = New SqlDataAdapter(SqlCommand)

                da.Fill(ds)
                If SqlCommand.Connection.State <> ConnectionState.Closed Then
                    SqlCommand.Connection.Close()
                End If
            Catch ex As Exception
                Throw ex
            End Try
            Return (ds)
        End Function

    y lo mas raro es que tengo otras consultas que hacen referencia al mismo procedimiento almacenado pero entran a otras consultas y lo recupero con esta misma funcion y no tarda tanto, sera por la cantidad de registros que regresa??? pero como comento en el sql lo hace rapidisimo

    jueves, 29 de enero de 2015 15:44
  • Te comento... 

    A mi modo de ver el problema radica en esta línea en negrita.

    da.Fill(ds)
    If SqlCommand.Connection.State <> ConnectionState.Closed Then
       SqlCommand.Connection.Close()
    End If

    Como indicas tal vez se devuelve un conjunto de registros muuuuuy  grande y el sistema tiene que crear un dataset (que es un objeto muuuuy pesado). Con lo que antes de cortar la conexión, ya te ha dado un timeout el comando.

    Prueba una cosita. En tu objeto SqlCommand establece un CommandTimeOut más grande y nos dices ok?

    un ejemplo

    miSqlCommand.CommandTimeOut = 10000


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    jueves, 29 de enero de 2015 15:48
  • También prueba a hacer esa consulta pero que únicamente te devuelva digamos... 1000 registros a ver qué tal


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    jueves, 29 de enero de 2015 15:48
  • Hola:
    Inserta la linea en negrita y prueba

    SqlCommand.Connection = New SqlConnection(StringConexion)
    SqlCommand.Connection.Open()
    SqlCommand.CommandTimeout = 1000    'Espera hasta mil segundos
    Dim da As SqlDataAdapter = New SqlDataAdapter(SqlCommand)

    Un saludo desde Bilbo
    Carlos

    viernes, 30 de enero de 2015 9:12
  • Despues de varias pruebas, creo que es cuestión de mi maquina, ya que en el servidor, tambien tarda pero si manda la informacion a pantalla, gracias por sus respuestas
    viernes, 30 de enero de 2015 19:52