Retroceder   Foros del Web > Programación para sitios web > .NET

Respuesta
 
Herramientas Desplegado
Antiguo 07-nov-2007, 03:28   #1 (permalink)
juancete no se puede cailificar en este momento
 
Fecha de Ingreso: febrero-2007
Mensajes: 69
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-nov-2007 a las 08:36.
juancete está desconectado   Responder Citando
Antiguo 07-nov-2007, 08:04   #2 (permalink)
erick_arcini tiene algunos puntos positivos de karma
 
Avatar de erick_arcini
 
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco, Estado de México
Mensajes: 1.355
Enviar un mensaje por MSN a erick_arcini Enviar un mensaje por Skype™ a erick_arcini
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;
__________________
En periodo de prueba -> http://previo.latinid.com.mx
erick_arcini está desconectado   Responder Citando
Antiguo 07-nov-2007, 08:37   #3 (permalink)
juancete no se puede cailificar en este momento
 
Fecha de Ingreso: febrero-2007
Mensajes: 69
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()
juancete está desconectado   Responder Citando
Antiguo 07-nov-2007, 10:38   #4 (permalink)
.seb está en el buen camino
 
Avatar de .seb
 
Fecha de Ingreso: marzo-2006
Ubicación: Internet
Mensajes: 493
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://sebaespanol.blogspot.com
.seb está desconectado   Responder Citando
Antiguo 08-nov-2007, 03:41   #5 (permalink)
juancete no se puede cailificar en este momento
 
Fecha de Ingreso: febrero-2007
Mensajes: 69
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
juancete está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 05:44.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93