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

#11 Eduardo Alvarado Meza
01/07/2006 - 07:01 | Informe spam
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.



Es cierto en parte, primer lugar las propiedades o settings del tipo
connectionstring no pueden cambiar su scope de aplicacion a scope, cuando el
compañero Antonio elimino la propiedad y la creo de nuevo, el le tuvo que
asignar el mismo nombre que tenia antes pero le especifico el tipo string
por defecto lo que le permitio cambiar el scope.

Sin embargo, cuando el scope es aplication, no importa cuantas veces
modifiques este valor porque la aplicacion no lo lee del archivo sino que se
compila, es decir que si lo compilastes con x valor asi se va a quedar
aunque modifiques el app.config cuantas veces quieras (una vez compilado).
Cuando utilizas el scope user, la aplicacion leera del app.config, sin
embargo cuando tu le apliques el primer settigs.save ya no leera mas de alli
sino de otro app.config que se creara en una carpeta en "documents and
settings\usuario\...", y entonces no importa cuantas veces modifiques el
app.config con el bloc notas no te respondera como deseas porque pueda ser
que estes modificando el archivo incorrecto. Para hacer que vuelva a leer
del app.config original hay que aplicarle un reset o algo asi.

En fin, en cualquier caso lo mejor es siempre modificar la cadena desde
My.Settings..

Suerte, cerrar todas las ventanas es mejor en el caso de Antonio
Respuesta Responder a este mensaje
#12 SoftJaén
01/07/2006 - 08:50 | Informe spam
"Eduardo Alvarado Meza" escribió:

Es cierto en parte, primer lugar las propiedades o settings del tipo
connectionstring no pueden cambiar su scope de aplicacion a scope, cuando
el compañero Antonio elimino la propiedad y la creo de nuevo, el le tuvo
que asignar el mismo nombre que tenia antes pero le especifico el tipo
string por defecto lo que le permitio cambiar el scope.



Hola, Eduardo:

Como ya le indiqué a Antonio, Visual Studio no le permite cambiar el ámbito
de la propiedad desde el propio diseñador, porque el proyecto actual tiene
asociado un origen de datos, es decir, que Antonio utilizó el Asistente para
la configuración de orígenes de datos, y optó por guardar el valor de la
cadena de conexión en el archivo de configuración de la aplicación, por lo
que la solución pasa por eliminar la propiedad que automáticamente crea
Visual Studio y añadir una nueva propiedad de ámbito «Usuario» (si su
intención es que posteriormente la pueda modificar el usuario en tiempo de
ejecución), o bien, no marcar la casilla de verificación del Asistente
para guardar la cadena de conexión como valor de una propiedad, en cuyo caso
el Asistente únicamente creará un archivo *.xsd, que contendrá un objeto
DataSet.

Sin embargo, cuando el scope es aplication, no importa cuantas veces
modifiques este valor ...



Me imagino que te referirás a que no importa las veces que se modifique el
valor de la propiedad desde el propio diseñador de Visual Studio, porque
está claro que si el ámbito de la propiedad es «Aplicación», en tiempo de
ejecución no se puede modificar el valor.

En fin, en cualquier caso lo mejor es siempre modificar la cadena desde
My.Settings...



... Modificar la cadena desde el objeto «My.Settings», siempre y cuando la
propiedad sea de lectura y escritura. :-)

Un saludo

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.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida