c# - mvc - Leer la cadena de conexión de web.config
connectionstrings web.config c# (12)
Añadir System.Configuration
como referencia.
Por alguna extraña razón no está incluido por defecto.
¿Cómo puedo leer una cadena de conexión de un archivo web.config
en una clase pública contenida en una biblioteca de clases?
He intentado:
WebConfigurationManager
ConfigurationManager
Pero estas clases no son reconocidas dentro de mi biblioteca de clases.
Agregue System.Configuration
como una referencia entonces:
using System.Configuration;
...
string conn =
ConfigurationManager.ConnectionStrings["ConnectionName"].ConnectionString;
Debe agregar una referencia a System.Configuration
y luego usar:
System.Configuration.ConfigurationManager.
ConnectionStrings["connectionStringName"].ConnectionString;
En VB
: Esto debería funcionar
ConfigurationManager.ConnectionStrings("SQLServer").ConnectionString
En C#
sería (según comentario de Ala)
ConfigurationManager.ConnectionStrings["SQLServer"].ConnectionString
Primero agregue esto:
using System.Configuration;
Supongo que debe agregar una referencia al ensamblado de System.Configuration si aún no se ha agregado.
Además, es posible que deba insertar la siguiente línea en la parte superior de su archivo de código:
using System.Configuration;
Tienes que invocar esta clase en la parte superior de tu página o clase:
using System.Configuration;
Luego, puede usar este método que devuelve la cadena de conexión para estar listo para pasar al objeto sqlconnection para continuar su trabajo de la siguiente manera:
private string ReturnConnectionString()
{
// Put the name the Sqlconnection from WebConfig..
return ConfigurationManager.ConnectionStrings["DBWebConfigString"].ConnectionString;
}
Solo para hacer una clara aclaración, este es el valor en la configuración web:
<add name="DBWebConfigString" connectionString="....." /> </connectionStrings>
Todo el mundo parece estar sugiriendo que añadiendo
using System.Configuration;
cual es verdad.
Pero, ¿puedo sugerirle que piense en instalar la extensión Visual Studio de ReSharper?
Una vez instalado, en lugar de ver un error que indica que una clase no está definida, verá un mensaje que le indica en qué ensamblaje se encuentra, preguntándole si desea agregar la declaración de uso necesaria.
DO#
// Add a using directive at the top of your code file
using System.Configuration;
// Within the code body set your variable
string cs = ConfigurationManager.ConnectionStrings["connectionStringName"].ConnectionString;
VB
'' Add an Imports statement at the top of your code file
Imports System.Configuration
'' Within the code body set your variable
Dim cs as String = ConfigurationManager.ConnectionStrings("connectionStringName").ConnectionString
using System.Configuration;
string conn = ConfigurationManager.ConnectionStrings["ConStringName"].ToString();
using System.Configuration;
string connString = ConfigurationManager.ConnectionStrings["ConStringName"].ToString();
Recuerde que no use ConnectionStrings [índice] porque es posible que la configuración y la portabilidad de la máquina global
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.DataVisualization.Charting;
using System.Web.UI.WebControls;
DO#
string constring = ConfigurationManager.ConnectionStrings["ABCD"].ConnectionString;
using (SqlConnection con = new SqlConnection(constring))
A CONTINUACIÓN WEB> CONFIG FILE CODE
<connectionStrings>
<add name="ABCD" connectionString="Data Source=DESKTOP-SU3NKUU/MSSQLSERVER2016;Initial Catalog=TESTKISWRMIP;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
En el código ablove ABCD es el nombre de la conexión