ASP.NET – Guardar cadena de conexion en el Web.config

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


36 comentarios en “ASP.NET – Guardar cadena de conexion en el Web.config

  1. 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.

  2. 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

  3. 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

  4. 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

  5. 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.

  6. 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.

  7. 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

  8. 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).

  9. 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.

  10. 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

  11. 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.

  12. 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

  13. 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

  14. 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

  15. 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.

  16. 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…

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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…..

Deja un comentario