Compartir conexion entre dos Forms

11/09/2003 - 10:57 por Kiko | Informe spam
Hola. Tengo un form con una conexión creada (mediante el asistente de vs)
que además es el form de arranque de mi aplicación. Me gustaría compartir
esa conexión con un segundo form. ¿cómo puedo hacerlo?. Gracias

Kiko.

Preguntas similare

Leer las respuestas

#1 Octavio Hernández
11/09/2003 - 16:29 | Informe spam
Si el objeto de conexión es visible desde el otro formulario, podrás acceder
a él así:

form1.objetoConexion

donde form1 es el formulario principal y objetoConexión - la conexión a BD.

Más correcto desde el pto de vista de la POO sería hacer el objeto de
conexión private en el formulario principal, y suministrar una propiedad de
solo lectura, así:

property Conexion: SqlConnection { get { return objetoConexion; } }

Luego acccederías a la conexión desde el otro formulario así:

form1.Conexion

Salu2 - Octavio

"Kiko" escribió en el mensaje
news:
Hola. Tengo un form con una conexión creada (mediante el asistente de vs)
que además es el form de arranque de mi aplicación. Me gustaría compartir
esa conexión con un segundo form. ¿cómo puedo hacerlo?. Gracias

Kiko.


Respuesta Responder a este mensaje
#2 Federico Villafañes
12/09/2003 - 01:03 | Informe spam
Tambien podrias pasar el objeto de conexion como parametro
del constructor de la form "hija", y en esa form lo almacenas en
alguna variable privada.

Yo uso este metodo porque me permite independizar a que la
form2 siempre necesite a la form1 por encima. De esa forma,
cuando quiero utilizar la form2 desde otro lado simplemente
paso el parametro como "null" y en form2 pongo un poco de
codigo que, cuando el parametro es null, "crea" la nueva
conexion.

Ahora, el tema de pasar la conexion de una form a otra
quizas lo estes haciendo pensando en no tener que abrir y
cerrar la conexion a cada rato y ganar en perfomance.
Si ese fuera el tema, despreocupate porque el framework,
maneja lo que se llaman "pool" de conexiones, que consiste
en que el framework mantiene abierta las conexiones que se
van cerrando durante un tiempo mas. Si alguna clase quiere
crear una nueva conexion y la "StringConnection" es igual a
esa conexion que el framework mantuvo abierta, entonces la
reutiliza...

Saludos

Federico

"Octavio Hernández" escribió en el mensaje
news:
Si el objeto de conexión es visible desde el otro formulario, podrás


acceder
a él así:

form1.objetoConexion

donde form1 es el formulario principal y objetoConexión - la conexión a


BD.

Más correcto desde el pto de vista de la POO sería hacer el objeto de
conexión private en el formulario principal, y suministrar una propiedad


de
solo lectura, así:

property Conexion: SqlConnection { get { return objetoConexion; } }

Luego acccederías a la conexión desde el otro formulario así:

form1.Conexion

Salu2 - Octavio

"Kiko" escribió en el mensaje
news:
> Hola. Tengo un form con una conexión creada (mediante el asistente de


vs)
> que además es el form de arranque de mi aplicación. Me gustaría


compartir
> esa conexión con un segundo form. ¿cómo puedo hacerlo?. Gracias
>
> Kiko.
>
>


Respuesta Responder a este mensaje
#3 Tristan
12/09/2003 - 12:35 | Informe spam
Si, además en general no es conveniente mantener abierta la conexión mucho
tiempo, al menos si se deséa que la aplicación sea escalable. Es preferible
tenerlas abiertas tan solo el tiempo indispensable para realizar
operaciones. Tal como indicas, el pool de conexiones grantizará la
eficiencia del proceso de apertura. Hay que tener en cuenta que las
conexiones son un recurso muy valioso, que puede estar compartido por muchos
usuarios.

Juan Carlos Badiola
MVP - C#
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida