Modificar cadena de conexion en tiempo de ejecucion

29/06/2006 - 19:17 por Antonio Ortiz | Informe spam
Alguien podria ayudarme para poder cambiar la cadena de conexion, en tiempo
de ejecucion?, pues me indica que es solo lectura.

O tambien valdria otra tecnica para formularios conectados


gracias,

Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com

Preguntas similare

Leer las respuestas

#6 Antonio Ortiz
30/06/2006 - 00:10 | Informe spam
tengo VS 2005, español (el mas reciente que me llego en mi suscripcion MSDN
Premium)


Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com


"SoftJaén" escribió en el mensaje
news:
"Antonio Ortiz" escribió:

no me permitio cambiar a 'usuario' asi que opte por eliminar la
configuracion y volver a crearla, pruebo y te cuento.



¡Uy! ¡Me suena eso raro! En estos momentos, ignoro a qué se puede deber
que no puedas modificar el ámbito (scope) de dicha propiedad. ¿?

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o sugerido en el presente mensaje.


Respuesta Responder a este mensaje
#7 Antonio Ortiz
30/06/2006 - 00:21 | Informe spam
Ahora ya puedo cambiar la cadena de conexion y funciona perfectamente,
cambio la cadena de conexion y los formularios trabajando bien.

Como tengo a la conexion de la aplicacion?, requiero desconectar y conectar
a peticion del usuario mediante un formulario... tengo alguna manera de
identificar la conexion global que crea el asistente de VS 2005?, intente
con los nombres que muestra en Ver - Crear Conexion, pero no funciona.

alguna idea?

Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com


"SoftJaén" escribió en el mensaje
news:
"Antonio Ortiz" escribió:

no me permitio cambiar a 'usuario' asi que opte por eliminar la
configuracion y volver a crearla, pruebo y te cuento.



¡Uy! ¡Me suena eso raro! En estos momentos, ignoro a qué se puede deber
que no puedas modificar el ámbito (scope) de dicha propiedad. ¿?

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o sugerido en el presente mensaje.


Respuesta Responder a este mensaje
#8 Eduardo Alvarado Meza
30/06/2006 - 08:32 | Informe spam
A mi parecer eso que pides te puede costar en dependencia de lo que este y
como lo estes haciendo. Deduzco que cada datatable en tu dataset tipado esta
trabajando con el adaptador creado por default por el VS, y ese es el
problema, que no existe una conexion global, sino que cada adaptador crea la
suya por independiente leyendo la connectionstring discutida anteriormente.
Esto puedes verificarlo al ver el codigo del dataset.

Lo que se me ocurre:
- La opcion mas sencilla en tu caso seria que antes de poder acceder a la
ventana de configuracion para cambiar la cadena de conexion, verifiques que
todas las ventanas (si usaras un MDI) esten cerradas. De esta manera, todos
las conexiones de cada uno de los adaptadores se inicilizaran con la nueva
connectionstring a medida que se abran las ventanas.

- Otra opcion, aunque no creo que aplique en tu caso por el trabajo extra y
retraso que traera es que tengas una capa que te provea los datos, es decir,
algo que implemente los metodos comunes como GetDataSet, GetDataTable,
GetAdapter, ExecuteQuery, ExecuteScalar y obviamente los metodos
OpenConnection y CloseCon... Por ejemplo, hay sistemas cuyas bases de datos
estan partidas por el tiempo (por asi decir), entonces hay veces que
necesitan ir a la BD correspondiente a la del 2004 y ver cierta informacion
detallada que con la BD del año actual no podrian, esto aplicaria en estos
casos porque el sistema presta esta flexibilidad, dando cierto nivel de
abstraccion para la aplicacion.

Espero mi comentario te sirva o te inspere a mejores ideas o perspectivas
para solucionar tu problema. Suerte

"Antonio Ortiz" escribió en el mensaje
news:
Ahora ya puedo cambiar la cadena de conexion y funciona perfectamente,
cambio la cadena de conexion y los formularios trabajando bien.

Como tengo a la conexion de la aplicacion?, requiero desconectar y
conectar a peticion del usuario mediante un formulario... tengo alguna
manera de identificar la conexion global que crea el asistente de VS
2005?, intente con los nombres que muestra en Ver - Crear Conexion, pero
no funciona.

alguna idea?

Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com


"SoftJaén" escribió en el mensaje
news:
"Antonio Ortiz" escribió:

no me permitio cambiar a 'usuario' asi que opte por eliminar la
configuracion y volver a crearla, pruebo y te cuento.



¡Uy! ¡Me suena eso raro! En estos momentos, ignoro a qué se puede deber
que no puedas modificar el ámbito (scope) de dicha propiedad. ¿?

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o sugerido en el presente mensaje.






Respuesta Responder a este mensaje
#9 SoftJaén
30/06/2006 - 14:53 | Informe spam
"Antonio Ortiz" escribió:

Ahora ya puedo cambiar la cadena de conexion y funciona perfectamente,
cambio la cadena de conexion y los formularios trabajando bien.



Leyendo éste mensaje, ahora entiendo el motivo por el cual Visual Studio no
te permitía cambiar el ámbito (scope) de la propiedad del archivo de
configuración.

Si a tu proyecto le has añadido un origen de datos, la propiedad por defecto
llamada «Bd1ConnectionString» (o como quiera que se llame), tiene un ámbito
de «Aplicación», y es de sólo lectura porque dicha conexión pertenece a la
aplicación, no al usuario. Para poder cambiar el valor de la visibilidad de
una propiedad, no debes de asociar tu proyecto con ningún origen de datos.

Como tengo a la conexion de la aplicacion?, requiero desconectar y
conectar a peticion del usuario mediante un formulario... tengo alguna
manera de identificar la conexion global que crea el asistente de VS
2005?, intente con los nombres que muestra en Ver - Crear Conexion, pero
no funciona.



¡Vamos a ver! Si el usuario toma la cadena de conexión directamente del
archivo de configuración, con independencia del ámbito que tenga la
propiedad (Aplication o Usuario), simplemente deberás de leer el valor de la
propiedad correspondiente. Suponiendo que la propiedad que guarda el valor
de la cadena de conexión se llama «Bd1ConnectionString», obtendrías el valor
de la siguiente manera:

MessageBox.Show(My.Settings.Bd1ConnectionString)

Todas las propiedades que añadas al archivo de configuración, las podrás
obtener utilizando el objeto «My.Settings», pero únicamente podrás modificar
en tiempo de ejecución, sólo aquéllas propiedades que tengan un ámbito de
«Usuario».


Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#10 Antonio Ortiz
30/06/2006 - 18:15 | Informe spam
Asi es, me he dado cuenta que basta cambiar la cadena de conexion para que
los formularios se actualizen a un origen de datos distintos.

Tenia la idea que existia una conexion global, pero como funciona
actualmente me parece mejor, lo que comenta Eduardo es exactamente lo que
tenia en mente, cerrar todos los formularios al cambiar la cadena de
conexion.

Gracias por la ayuda, esto me tenia atorado por semanas.


Antonio Ortiz
asesor en sistemas
ant(a)aortiz.net
www.aortiz.net
www.progvisual.com



"SoftJaén" escribió en el mensaje
news:
"Antonio Ortiz" escribió:

Ahora ya puedo cambiar la cadena de conexion y funciona perfectamente,
cambio la cadena de conexion y los formularios trabajando bien.



Leyendo éste mensaje, ahora entiendo el motivo por el cual Visual Studio
no
te permitía cambiar el ámbito (scope) de la propiedad del archivo de
configuración.

Si a tu proyecto le has añadido un origen de datos, la propiedad por
defecto
llamada «Bd1ConnectionString» (o como quiera que se llame), tiene un
ámbito
de «Aplicación», y es de sólo lectura porque dicha conexión pertenece a la
aplicación, no al usuario. Para poder cambiar el valor de la visibilidad
de
una propiedad, no debes de asociar tu proyecto con ningún origen de datos.

Como tengo a la conexion de la aplicacion?, requiero desconectar y
conectar a peticion del usuario mediante un formulario... tengo alguna
manera de identificar la conexion global que crea el asistente de VS
2005?, intente con los nombres que muestra en Ver - Crear Conexion, pero
no funciona.



¡Vamos a ver! Si el usuario toma la cadena de conexión directamente del
archivo de configuración, con independencia del ámbito que tenga la
propiedad (Aplication o Usuario), simplemente deberás de leer el valor de
la
propiedad correspondiente. Suponiendo que la propiedad que guarda el valor
de la cadena de conexión se llama «Bd1ConnectionString», obtendrías el
valor
de la siguiente manera:

MessageBox.Show(My.Settings.Bd1ConnectionString)

Todas las propiedades que añadas al archivo de configuración, las podrás
obtener utilizando el objeto «My.Settings», pero únicamente podrás
modificar
en tiempo de ejecución, sólo aquéllas propiedades que tengan un ámbito de
«Usuario».


Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado
o
sugerido en el presente mensaje.





Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida