Incognita en cierre de conexion a DB..........

29/11/2004 - 00:01 por Nathaly | Informe spam
Un saludo a todos, acudo a ustedes para plantearles una problematica que
tengo con mi aplicacion 3 capas en C#.
Mi aplicacion tiene una capa de datos que basicamente es donde yo realizo
mis conexiones a la DB y ejecuto mis sentencias o querysque retornan mi
informacion a mi capa de negocios...
Mi interrogante es la siguiente, en las clases de mi capa de datos yo
inicialmente :
* Abria la conexion,
* ejecutaba el query
* cerraba la conexion retornando los datos a la capa de negocios
para cada uno de los metodos de mis clases como note que mi aplicacion
se estaba haciendo lenta le heche la culpa a lo que estaba haciendo de abrir
y cerrar conexiones... y opte por lo siguiente:
* Abrir la conexion en el constructor de la clase
* Ejecutar el query en cada metodo
Como ven nunca cierro la conexionporque al instanciar un objeto de mi
clase utilizo varios metodos, por ende no puedo cerrar la conexion a menos
que quiera trabajar con varias instancias del objeto (cosa que no
quiero).imagine que podia cerrar la conexion en el ~ Clase()
(descontructor de mi clase) pero me salen errores
Por el momento no cierro la conexion por ningun lado por que alguien por ahi
me dijo que el garbace colector se encargaba de eso al notar que la conexion
no esta siendo usada(esto es cierto???)
Sigo notando que mi aplicacion se esta volviendo lenta cuanto mas la
construyo(y no es problema de mis procesos porque no son nada
complicados) no se que hacer y tengo miedo que esas conexiones abiertas
me generen mayores problemas a medida que siga desarrollando..

Esperando que alguno de ustedes me puede ayudar con mi problema de si cerrar
o no las conexiones y como hacerlo me despido, no sin antes darles las
gracias de antemano

Saludos,
nathaly
 

Leer las respuestas

#1 David Salgado,MVP
29/11/2004 - 13:29 | Informe spam
Hola Nathaly,

¿ que motor de bbdd utilizas ?
Esta claro que el proceso de crear una conexión es bastante pesado, por lo
que se suele utilizar un
pool para las conexiones ( por eso pregunto lo del motor, pq sql server lo
trae por defecto).
Por otro lado, te recomiendo que le eches un vistazo a la parte de datos de
msdn video ( www.desarrollaconmsdn.com )

Saludos,

David Salgado



"Nathaly" wrote in message
news:
Un saludo a todos, acudo a ustedes para plantearles una problematica que
tengo con mi aplicacion 3 capas en C#.
Mi aplicacion tiene una capa de datos que basicamente es donde yo realizo
mis conexiones a la DB y ejecuto mis sentencias o querysque retornan
mi informacion a mi capa de negocios...
Mi interrogante es la siguiente, en las clases de mi capa de datos yo
inicialmente :
* Abria la conexion,
* ejecutaba el query
* cerraba la conexion retornando los datos a la capa de negocios
para cada uno de los metodos de mis clases como note que mi aplicacion
se estaba haciendo lenta le heche la culpa a lo que estaba haciendo de
abrir y cerrar conexiones... y opte por lo siguiente:
* Abrir la conexion en el constructor de la clase
* Ejecutar el query en cada metodo
Como ven nunca cierro la conexionporque al instanciar un objeto de mi
clase utilizo varios metodos, por ende no puedo cerrar la conexion a menos
que quiera trabajar con varias instancias del objeto (cosa que no
quiero).imagine que podia cerrar la conexion en el ~ Clase()
(descontructor de mi clase) pero me salen errores
Por el momento no cierro la conexion por ningun lado por que alguien por
ahi me dijo que el garbace colector se encargaba de eso al notar que la
conexion no esta siendo usada(esto es cierto???)
Sigo notando que mi aplicacion se esta volviendo lenta cuanto mas la
construyo(y no es problema de mis procesos porque no son nada
complicados) no se que hacer y tengo miedo que esas conexiones
abiertas me generen mayores problemas a medida que siga
desarrollando..

Esperando que alguno de ustedes me puede ayudar con mi problema de si
cerrar o no las conexiones y como hacerlo me despido, no sin antes darles
las gracias de antemano

Saludos,
nathaly

Preguntas similares