2012-03-25 10 views
5

Używam tego kodu, aby odczytać ciąg połączenia z mojego pliku app.config, ale zawsze zwraca wartość zerową. Mój plik App.config znajduje się w moim projekcie. Obie metody są wynikiem wartości null:jak odczytać ciąg połączenia z pliku App.config przez 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; 
} 

To moja deklaracja plik 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

Czy projekt się składa * * klasa projekt biblioteki? Te ** nie ** faktycznie używają własnego pliku 'app.config' - musisz umieścić swój ciąg połączenia w ** aplikacji hostingowej ** (główny program lub aplikacja internetowa/strona internetowa) przy użyciu biblioteki klas –

+0

marc_s ++ pracował dla mnie .. –

Odpowiedz

4

można spróbuj

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

Następnie za pomocą drugiej metody.

Upewnij się, że wybrałeś plik App.Config w eksploratorze rozwiązań iw oknie właściwości wybierz Copy to Output Directory do Copy Always. Teraz Zbuduj aplikację i spróbuj ponownie.

See the screenshot

+1

nadal zwraca wartość null – Kalanamith

+0

Zobacz moją zmianę powyżej. – PraveenVenu

5

myślę problemu, aby spróbować odczytać ciąg połączenia dwa razy, najpierw musisz zrobić to dobrze, a drugi raz robisz to źle, więc po prostu usunąć drugą linię:

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

ConfigurationManager.AppSettings używany do uzyskania dostępu do sekcji konfiguracji <appSettings>...</appSettings>.

+0

dobrze nie jest tutaj. – Kalanamith

+0

Twój nadpisuje connectionString przez ponowne przypisanie go. Usuń drugą pozycję connectionString, a wszystko będzie dobrze. – Jay

+0

To jest to, co do niego napisałem. Mówi, że to nie działa. –

1

można zdefiniować prosty ciąg połączenia w jednej klasie i nazywają ten ciąg .....

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

nie ma szczęścia dla mnie. – Kalanamith

Powiązane problemy