2012-03-25 29 views
5

Estoy usando este código para leer la cadena de conexión de mi archivo app.config pero siempre devuelve un valor nulo. Mi archivo App.config está bajo mi proyecto. Ambos métodos están dando como resultado valores nulos:cómo leer la cadena de conexión del archivo App.config por C#

public SqlConnection getConnection() 
{ 
    try 
    { 
     // connectionString = ConfigurationManager.AppSettings["dbConn"]; 

     connectionString = ConfigurationManager.ConnectionStrings["dbConn"].ConnectionString; 
     connectionString = System.Configuration.ConfigurationManager.AppSettings["dbConn"]; 
     sqlConnection = new SqlConnection(connectionString); 

     sqlConnection = new SqlConnection(connectionString); 
    } 
    catch (Exception ex) 
    { 

    } 
    return sqlConnection; 
} 

Ésta es mi declaración archivo app.config:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <connectionStrings> 
    <add name="dbConn" providerName="System.Data.SqlClient" 
      connectionString="Data Source=VANYA\SQLEXPRESS;Initial Catalog=mydatabase;User Id=sa;Password=123" /> 
    </connectionStrings> 
</configuration> 
+0

¿Su proyecto pase a ser un proyecto de biblioteca de clases * *? Aquellos que no ** realmente ** usan su propio archivo 'app.config' - necesitarás poner tu cadena de conexión en la ** aplicación de alojamiento ** (el programa principal o la aplicación web/sitio web) usando tu biblioteca de clase –

+0

marc_s ++ funcionó para mí .. –

Respuesta

4

¿Puede usted por favor intente

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <connectionStrings> 
    <add name="dbConn" providerName="System.Data.SqlClient" 
      connectionString="Data Source=VANYA\SQLEXPRESS;Initial Catalog=mydatabase;User Id=sa;Password=123" /> 
    </connectionStrings> 
    <appSettings> 
    <add key="dbConn" value="Data Source=VANYA\SQLEXPRESS;Initial Catalog=mydatabase;User Id=sa;Password=123" /> 
    </appSettings> 
</configuration> 

continuación, utilizar el segundo método.

Asegúrese de seleccionar el archivo App.Config en el explorador de soluciones y en la ventana de propiedades, seleccione Copy to Output Directory a Copy Always. Ahora compila la aplicación y vuelve a intentarlo.

See the screenshot

+1

todavía devuelve nulo – Kalanamith

+0

Ver mi edición más arriba. – PraveenVenu

5

Creo que su problema que intenta leer cadena de conexión dos veces, primero lo haces bien, y la segunda vez que lo haces mal, por lo que basta con retirar segunda línea:

connectionString = ConfigurationManager.ConnectionStrings["dbConn"].ConnectionString; 
sqlConnection = new SqlConnection(connectionString); 

ConfigurationManager.AppSettings utilizado para acceder a la sección <appSettings>...</appSettings> de la configuración.

+0

bien, este no es el caso aquí. – Kalanamith

+0

Estás sobreescribiendo connectionString reasignándolo. Elimine la segunda asignación de connectionString y estará bien. – Jay

+0

Eso es lo que le escribí. Él dice que no está funcionando. –

1

Es sencillo definir cadena de conexión en una clase y llamar a esa cadena .....

public class Connection 
    { 
     /// <summary> 
     /// Connection String 
     /// </summary> 
     public static string ConnectionString 
     { 
      get 
      { 
       return ConfigurationManager.ConnectionStrings["dbConn"].ConnectionString; 
      } 
     } 
    } 

//Returning connction string 
sqlConnection conn = new SqlConnection(Connection.ConnectionString); 
1
connectionString=global::myProject.Properties.Settings.Default.myConnectionString 
+0

sin suerte para mí. – Kalanamith

Cuestiones relacionadas