Tus comentarios y sugerencias son muy importantes, por favor aporta a este blog…
En nuestro primer articulo aprenderemos como podemos almacenar la cadena de conexión a una base de datos en el archivo de configuración de nuestro sitio web (web.config) , así podremos acceder desde cualquier parte del sitio. Para los que no saben el web.config es un archivo basado en XML ( http://www.w3c.es/Divulgacion/Guiasbreves/TecnologiasXML) para almacenar valores que controlan cómo funciona tu sitio Web, en otras palabras es un archivo donde puedes guardar y personalizar toda la configuración de tu sitio web.Empezemos entonces, abre tu archivo web.config y dentro de la etiqueta <configuration> pega el siguiente código:
<
connectionStrings>
<add name=«CadenaConexion« connectionString=«Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True« providerName=«System.Data.SqlClient« />
</connectionStrings>
Explicando un poco……
name=«CadenaConexion» : Es el nombre que quieres colocarle a la cadena de conexion
connectionString=«Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True» : Cadena para conectarse a la base de datos
providerName=«System.Data.SqlClient» : Nuestro Proveedor de datos, en este caso nos conectamos a una base de datos SQL Server Express.
Ahora vamos a ver el código de la pagina debes agregar el espacio de nombres que vamos a utilizar:
System.Configuration;
..luego para leer tu cadena de conexion puedes hacerlo de la siguiente forma:
ConfigurationManager.ConnectionStrings[«CadenaConexion«].ConnectionString;
esto puedes llevarselo por ejemplo a una variabe string:
string cadena = ConfigurationManager.ConnectionStrings[«CadenaConexion»].ConnectionString;
bueno, espero que les sirva de ayuda este articulo, muy pronto espera muchisimo mas (trucos, codigo fuente)
nos vemos ……………………………….
handark
Me parece super bacana tu pagina, he aprendido mucho de ella, tiene cosas realmente utiles, para programar en .net,ojala sigas publicando cosas asi de interesates.
hola handark,
tengo una duda: si quiero conectarme desde otra página.
¿ cómo recupero la variable que contiene la conexión ?
saludos 🙂
espero que nos sigamos comunicando para sincronizar tips de .net
hola diana,
puedes acceder desde cualquier pagina a la variable que contiene la conexion de esta manera:
string cadena = ConfigurationManager.ConnectionStrings[«CadenaConexion»].ConnectionString;
pero recuerda que debes declarar el espacio de nombres:
System.Configuration;
si quieres el codigo con el ejemplo puedes escribirme a handark@gmail.com
saludos, nos seguimos hablando…
handark
Esta super que bien este artículo, pero ahora me puedes explicar como conectar sin utilizar la cadena de conexion en el web.config a una base de datos mysql
saludos
hola!
puedo almacenar una cadena (string) con el path de un ftp o algo similar en el web.config?
en el caso de que se pueda hacer, cómo se recupera y cuáles son los tags que debo usar?
salu2!
Hola,
Tu artículo esta excelente y esta página me parece muy buena, es la primera vez que la visito y creo que la voy a agregar a mis favoritos, con respecto al ConfigurationManager yo tengo una duda y no le he podido encontrar la respuesta, talvez tú me puedas ayuda.
Estoy realizando un pequeño proyecto donde cuento con una solución que esta conformada por un sitio web y dos proyectos de librerias de clases, es una aplicación de tres capas: presentación, lógica y acceso a datos separados en proyectos. Yo necesito accesar el web.config donde tengo la tira de conección, pero esto debo hacerlo desde el proyecto de acceso a datos y al utilizar el ConfigurationManager para accesarlo me indica que hay un error que «ConfigurationManager» no se ha declarado y si lo acceso con System.Configuration.ConfigurationManager me indica que no es miembro de configuration, te agradeceria si me prestaras una ayuda, gracias.
Alonso, la respuesta a la pregunte fue enviada a tu correo
Muchas gracias handark, tu respuesta es muy acertada para mí, espero que sigas adelante con este proyecto que es de gran ayuda y cuentas con un amigo en Costa Rica, gracias.
Hola
Te felicito por el articulo, tengo el mismo problema que alonso
«Estoy realizando un pequeño proyecto donde cuento con una solución que esta conformada por un sitio web y dos proyectos de librerias de clases, es una aplicación de tres capas: presentación, lógica y acceso a datos separados en proyectos. Yo necesito accesar el web.config donde tengo la tira de conección, pero esto debo hacerlo desde el proyecto de acceso a datos y al utilizar el ConfigurationManager para accesarlo me indica que hay un error que ConfigurationManager” no se ha declarado y si lo acceso con System.Configuration.ConfigurationManager me indica que no es miembro de configuration, te agradeceria si me prestaras una ayuda, gracias.»
tu me podrias ayudar con ese problema se agradese de ante mano la ayudita
Sergio, la respuesta a la pregunte fue enviada a tu correo
gracias por la ayuda la voy a probar
Hola Handark,
me pasa algo parecido a lo de sergio, tengo una libreria de clases donde tengo los dataset tipados y todo el acceso a la BD, por otro lado tengo un web service donde quiero exponer los metodos para manipular los datos y un sitio web q sera la capa de presentacion donde quiero almacenar la cadena de conexion en el web config y no se como pasarla hasta mi capa de acceso a datos(dll).
Tengo que hacer exactamento lo mismo, pero con framework 1.1, me podrias enviar la solucion por favor, yo la adapto si es necesario.. muchas gracias.
Handark, muy interesante tu articulo, tengo el mismo problema de alonso, estoy realizando un sitio web en tres capas, para los cuales los distribuyo en diferentes proyectos, pero en la clase conexion que he creado no me permite leer contenido del webconfig que esta en en proyecto de presentacion.. si me puedes ayudar te lo agradecere
Luis, la respuesta a la pregunte fue enviada a tu correo
Hola Handark, esta muy buena tu pagina, y me ha sevido bastante este asunto de la conexion, te cuento que soy muy nuevo en esto de Asp .Net, llevo mas menos 3 semanas. Me gustari hacerte una consulta, lo que pasa es que necesito realizar una consulta a la base de datos, lo hago despues de realizar la llamada como lo explicas aca en tu pagina, sin embargo no lo he podido lograr, ya que me sale un error que dice «el formato de la cadena de inicializacion no se ajusta a la especificacion que comienza en el indice 0». La verdad no he podido descubrir a que se refiere, quiza estoy utilizando mal el codigo, no se. Te agradeceria mucho si me pudieras ayudar, y disculpa si es algo obvio…Desde ya muchas gracias.
se me olvido comentar que lo estoy haciendo con VB y SQL server 2005. Eso, gracias
Handark respecto a la pregunta de los 2 compañeros anteiores….podrías poner la respuesta aquí para todos, o enviarmela a mi tambien…
Muchas gracias
Hola, para todos los que me han preguntado como acceder a la cadena desde una librería de clases acá les dejo este articulo con la respuesta:
https://handark.wordpress.com/2008/04/07/aspnet-guardar-cadena-de-conexion-en-el-webconfig-y-acceder-desde-una-libreria-de-clases/
Saludos
Handark
Hola, mira a mi me pasa lo mismo que a Sergio, me podrías ayudar, a parte tengo entendido que la web.conf no la puedes utilizar si no te sabes los valores de la cadena de conección, si puedes explícame esto.
Saludos
Hola solo quera decirte que este sitio web est muy bien diseado y estructurado.
Solo quera preguntarte en que est montado, si es un CMS que es???
Me puedes responder a mi direccin de correo:
dolazabal@estudiantes.uci.cu
Saludos Daynier
Hola Rebeca, puedes ver el articulo complementario a este en::
https://handark.wordpress.com/2008/04/07/aspnet-guardar-cadena-de-conexion-en-el-webconfig-y-acceder-desde-una-libreria-de-clases/
Varon!! no sabes del grn embrollo q me acabas de sacar! t lo agradezco pana, muy util tu aportacion! gracias totales My Man
Hola handrark, mi cadena de conexion la tengo en el web.copnfig, pero tengo un error. Es este:El formato de la cadena de inicialización no se ajusta a la especificación que comienza en el índice 0. Me podrias ayudar cone sto de favor.
Gracias
hola!
me gustaria saber de una buena fuente para aprender todo acerca de asp.net gracias
Hola Handark, una vez que recupero la cadena, como puedo hacer para cambiarla, es decir, si tengo un usuario y una clave que recibo como parametros,como hago para modificar dicha cadena.
Gracias de antemano.
ola!!r
mi pregunta es, si al momento de subir mi aplicacion al servidor tengo que borrar el web.config que se encuentra ai….y si es asi como mandar a llamar la conexion,deberas espero tu respuesta sera de mucha ayuda para mi ya que apenas estoy empezando aver esto de asp.net..
gracias…
Aquellos con el problema del índice 0, he aquí la solucíon, como Cesar y SkinFault, he aquí la solución.
http://blogs.msdn.com/jongallant/archive/2009/05/02/solution-to-the-format-of-the-initialization-string-does-not-conform-to-specification-starting-at-index-0-exception.aspx
Saludos, suerte!
Hola handrark,tu pagina es muy buena y veo que te preocupas por darr respuesta a los comentarios, fijate que yo un problema muy parecido al de Alonso Chavarria:
Estoy realizando un proyecto donde utilizo windowsforms y quiero saber como hacer que cada vez que necesito conectarme a la base de datos, la ruta la tome de connecctionstrings que esta en el app.config pero al utilizar el ConfigurationManager para accesarlo me indica que hay un error que dice No se ha declarado el nombre ‘ConfigurationManager’.
Un ejemplo de mi codigo es el siguiente:
Dim sql As String = «SELECT COUNT(*) » & _
«FROM buques » & _
«WHERE buque = ‘» & Id & «‘»
Using conn As New SqlConnection(ConfigurationManager.ConnectionStrings(«default»).ToString())
Dim command As New SqlCommand(sql, conn)
command.Parameters.AddWithValue(«Id», Id)
conn.Open()
Dim count As Integer = Convert.ToInt32(command.ExecuteScalar())
If count = 0 Then
Return False
Else
Return True
End If
End Using
Me urge saber como resolverlo. Muchas Gracias
hola, muy bueno el sitio, me sirve mucho.
con respecto a este articulo, tengo el mismo problema q menciona Alonso en el mensaje numero 6. agradeceria una ayuda. muchas gracias
muy buen articulo……..y por favor necesito informacion o donde puedo encontrar mas informacion acerca de lo que se trata el web config…..estare muy agradecido de su ayuda…..de antemano .muchas gracias amigos
Graciasssss… muy bien explicado..
ojala sigas explicando cosas haci de claras…
🙂
Hola… encontre esta pagina y espero aun siga vigente… tengo el mismo problema que este amigo pero no encuentro como poder llamar el webconfig… lo estoy programando en vb no cs
Gracias por el apoyo de antemano.
Hola
Te felicito por el articulo, tengo el mismo problema que alonso
“Estoy realizando un pequeño proyecto donde cuento con una solución que esta conformada por un sitio web y dos proyectos de librerias de clases, es una aplicación de tres capas: presentación, lógica y acceso a datos separados en proyectos. Yo necesito accesar el web.config donde tengo la tira de conección, pero esto debo hacerlo desde el proyecto de acceso a datos y al utilizar el ConfigurationManager para accesarlo me indica que hay un error que ConfigurationManager” no se ha declarado y si lo acceso con System.Configuration.ConfigurationManager me indica que no es miembro de configuration, te agradeceria si me prestaras una ayuda, gracias.”
tu me podrias ayudar con ese problema se agradese de ante mano la ayudita
buenas, tengo un problema con una aplicacion web, tengo varios poyectos en una solución, de un poryecto necesito capturar datos del web config de otro proyecto, pero al realizar el trabajo con el siguiente comando me sale que no es un objeto que fue refernciado.
string en_segcrypt = System.Configuration.ConfigurationManager.AppSettings[«passBD»].ToString();
Si lo realizo de otra forma me sale que la variable en_segcrypt esta vacio…por favor…..
Hola buen articulo me gustaria saber si se puede hacer esto mismo pero con postgresql. y gracias me ha servido este articulo..
hola disculpa q te moleste pero me podrias enviar un ejemplo de lo q es l coneccion te lo agradecería mucho y ahi perdonas la molestia. correo: aloaguilar@hotmail.es, GRACIAS