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
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:
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
Muchas gracias por el tips, ero justo lo que andaba buscando.
muchas gracias me resolvió un problema con el que me estaba rompiendo el coco con otro tipo de cadena de conexión gracias gracias
Publicar un comentario