Foros del Web » Programación para mayores de 30 ;) » .NET »

Error "Valor de tiempo de espera caducado. El período de tiempo de espera caducó... "

Estas en el tema de Error "Valor de tiempo de espera caducado. El período de tiempo de espera caducó... " en el foro de .NET en Foros del Web. hola, tengo un problema en visual studio 2005, utilizo el sql server que trae integrado y me da el siguiente error "Valor de tiempo de ...
  #1 (permalink)  
Antiguo 07/11/2007, 04:28
 
Fecha de Ingreso: febrero-2007
Mensajes: 69
Antigüedad: 17 años, 2 meses
Puntos: 0
Pregunta Error "Valor de tiempo de espera caducado. El período de tiempo de espera caducó... "

hola, tengo un problema en visual studio 2005, utilizo el sql server que trae integrado y me da el siguiente error "Valor de tiempo de espera caducado. El período de tiempo de espera caducó antes de completar la operación o el servidor no responde".

utilizo para hacer los select un sqldataadapter.fill() y asi lleno la tabla con los datos.

Código:
public class BaseDatos
{
   private SqlConnection _cnx = new SqlConnection();
   private SqlCommand _comando= new SqlCommand();
   private SqlDataAdapter _adap = new SqlDataAdapter();

   public BD()
   {
        _cnx.ConnectionString = "String de conexion.....";
        _comando.Connection = this._cnx;
   }

   public datatable metodoSelect(string consultaSQL)
   {
       datatable tabla=new datatable("datos");
       this._comando.CommandText = consultaSQL;
       this._adap.SelectCommand = this._comando;
       try
       {
            this._adap.Fill(tabla);
            return tabla;
       }
       catch (Exception ex)
       {}                   
   }
}
El utilizar el adapter es el causante del error. Cada vez que hago un select utilizo el metodo metodoSelect(consulta): creo una conexion nueva (al usar el constructor de la clase BaseDatos), asigno la consulta al sqlcommand, asigno el sqlcommand al adapter y con el adapter hago el fill.

El error se da exactamente cuanto inicio la transaccion, modifico una tabla (con otro metodo que no incluyo aki), luego hago una consulta select con metodoSelect(consulta) sobre la tabla modificada (creando una nueva instancia de la clase BaseDatos), al hacer sqldataadapter.fill() para recuperar los datos se produce el timeout. Si hago la consulta sobre una tabla no modificada en la transaccion no se produce el error.

La solucion fue usar para hacer el select la propia instancia de la clase BaseDatos que uso para la transaccion en lugar de crear una nueva. De todas formas alguien podria decirme pq se producia el error? me imagino que podria ser pq en una transaccion mientras no hagas el comit() los datos no quedan fijos entonces el adapter de la nueva conexion se hara un lio.

Última edición por juancete; 07/11/2007 a las 09:36
  #2 (permalink)  
Antiguo 07/11/2007, 09:04
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Re: Error "Valor de tiempo de espera caducado. El período de tiempo de espera caducó.

si así como tal estas programando tu clase y solo cambiaste la cadena de conexión para explicarnos tu error, creo que el problema lo tienes en estas dos lineas

Código:
public datatable metodoSelect(string consulta)
Código:
this._comando.CommandText = consultaSQL;
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #3 (permalink)  
Antiguo 07/11/2007, 09:37
 
Fecha de Ingreso: febrero-2007
Mensajes: 69
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Error "Valor de tiempo de espera caducado. El período de tiempo de espera caducó.

me equivoque al copiar y pegar, en ambos es consultaSQL.

el string de conexion es el mismo. por un lado esta la conexion abierta para hacer operaciones dentro de una transaccion y por otro lado las conexiones que abro y cierro al hacer cosultas SELECT y llenar la tabla con adaptador.fill()
  #4 (permalink)  
Antiguo 07/11/2007, 11:38
Avatar de .seb  
Fecha de Ingreso: marzo-2006
Ubicación: Uruguay
Mensajes: 493
Antigüedad: 18 años, 1 mes
Puntos: 1
Re: Error "Valor de tiempo de espera caducado. El período de tiempo de espera caducó.

El problema es que la consulta esta demorando mucho y cae el timeout del comando.
El valor por defecto de la propiedad CommandTimeout es 30 segundos, agrandalo a ver si es eso, y si es, despues puedes ver como agilizar la consulta

http://msdn2.microsoft.com/en-us/lib...ndtimeout.aspx
__________________
saludos
seba
http://sgomez.blogspot.com
  #5 (permalink)  
Antiguo 08/11/2007, 04:41
 
Fecha de Ingreso: febrero-2007
Mensajes: 69
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Error "Valor de tiempo de espera caducado. El período de tiempo de espera caducó.

he probado a ponerlo a 60 y tampoco tira, con lo unico que consigo de momento hacerlo funcionar es con lo que puse en el primer post
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:03.