2013-08-25 7 views
11

Próbuję napisać ciąg połączenia Web.config tak:Jak napisać ciąg połączenia w pliku web.config i przeczytać z niego?

<connectionStrings> 
    <add name="Dbconnection" connectionString="Server=localhost; 
     Database=OnlineShopping ; Integrated Security=True"/> 
</connectionStrings > 

i odczytać z niej tak:

string strcon = 
    ConfigurationManager.ConnectionStrings["Dbconnection"].ConnectionString; 
SqlConnection DbConnection = new SqlConnection(strcon); 

po uruchomieniu programu pojawia się błąd ze względu na wartość null odniesienie. ale kiedy używam tego kodu:

SqlConnection DbConnection = new SqlConnection(); 
DbConnection.ConnectionString = 
    "Server=localhost; Database=OnlineShopping ; Integrated Security=True"; 

Nie otrzymam żadnego błędu i program działa poprawnie! Na czym polega problem?

Odpowiedz

1

spróbuje użyć WebConfigurationManager zamiast ConfigurationManager

+3

Nie potrzebujesz programu WebConfigurationManager do odczytywania połączenia. – slfan

10

Dodaj odniesienie dodać System.Configuration: -

System.Configuration.ConfigurationManager. 
    ConnectionStrings["connectionStringName"].ConnectionString; 

Ponadto można zmienić plik webconfig zawierać nazwę dostawcy: -

<connectionStrings> 
    <add name="Dbconnection" 
     connectionString="Server=localhost; Database=OnlineShopping; 
     Integrated Security=True"; providerName="System.Data.SqlClient" /> 
</connectionStrings> 
+1

to działało dla mnie. dzięki! – UniCoder

2

spróbuj tego

var configuration = WebConfigurationManager.OpenWebConfiguration("~"); 
var section = (ConnectionStringsSection)configuration.GetSection("connectionStrings"); 
section.ConnectionStrings["MyConnectionString"].ConnectionString = "Data Source=..."; 
configuration.Save(); 
3

Czy jesteś pewien, że plik konfiguracyjny (web.config) jest we właściwym miejscu, a ciąg połączenia rzeczywiście znajduje się w pliku (wygenerowanym)? Jeśli opublikujesz plik, zawartość web.release.config może zostać skopiowana.

Konfiguracja i dostęp do łańcucha Połączenia wygląda dla mnie dobrze. Ja zawsze dodać providerName

<connectionStrings> 
    <add name="Dbconnection" 
     connectionString="Server=localhost; Database=OnlineShopping; 
     Integrated Security=True" providerName="System.Data.SqlClient" /> 
</connectionStrings> 
8

Web.config:

<connectionStrings> 
    <add name="ConnStringDb" connectionString="Data Source=localhost; 
     Initial Catalog=DatabaseName; Integrated Security=True;" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

kod C#:

using System.Configuration; 
using System.Data 

SqlConnection _connection = new SqlConnection(
      ConfigurationManager.ConnectionStrings["ConnStringDb"].ToString()); 

try 
{ 
    if(_connection.State==ConnectionState.Closed) 
     _connection.Open(); 
} 
catch { } 
1

Spróbuj Po otwartego pliku web.config w aplikacji i dodać przykładowe połączenie db w sekcji connectionStrings jak ta

<connectionStrings> 
<add name="yourconnectinstringName" connectionString="Data Source= DatabaseServerName; Integrated Security=true;Initial Catalog= YourDatabaseName; uid=YourUserName; Password=yourpassword; " providerName="System.Data.SqlClient"/> 
</connectionStrings > 
Powiązane problemy