jueves, 4 de febrero de 2010

Leer la conectionstring del web.config desde un proyecto asociado.

Premisa: Tenemos una solución compuesta por un proyecto del tipo Sitio web y un proyecto del tipo Biblioteca de clases en donde estamos construyendo nuestra capa de datos y que hemos llamado DAL.

Queremos, desde la DAL, recuperar la conectionstring que está almacenada en el web.config del proyecto Sitio Web.

Solución:

1. Añadir las referencias del tipo .NET:
     System.Web
    System.Configuration

referencias

2. Añadir los using, que sí son duplicados pero nos simplifican la sintaxis del código.
using System.Web;
using System.Configuration;

3. Invocar a la cadena de conexión en el web.config con el siguiente método (o la variación que se te ocurra.

/// <summary>
///
Devuelve la cadena de conexion a la base de datos
/// </summary>
/// <returns></returns>
public string cadenaConexion()
{
string retValue = string.Empty; ;
retValue = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["pruebaConnectionStringSQL"].ConnectionString;

return retValue;
}
Listo.

3 comentarios:

Anónimo dijo...

Gracias, esto lo estaba buscando porque cuando se maneja un proyecto con n-capas en la mayoría de páginas, a la final, pasan el string de conexión como un parámetro y eso me parece poco eficiente. El proyecto DAL (acceso a datos) debería leer directamente el archivo web.config como lo dices en esta publicación.

Yo normalmente uso la Enterprise Library y ahí ya viene un método "DatabaseFactory.CreateDatabase("ClaveStringConnection")" donde ya lee directamente el web.config en su parte de conectionstings, pero necesitaba este dato para saber cómo se hacen las conexiones sin utilizar la E.L.

Gracias por tu ayuda, un saludo

Anónimo dijo...

Muchas gracias por el tips, ero justo lo que andaba buscando.

Anónimo dijo...

muchas gracias me resolvió un problema con el que me estaba rompiendo el coco con otro tipo de cadena de conexión gracias gracias