2013-08-25 6 views
11

Ich versuche Verbindungszeichenfolge zu schreiben wie diese Web.config:Wie schreibt man die Verbindungszeichenfolge in die Datei web.config und liest daraus?

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

und lesen daraus wie folgt aus:

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

wenn führen Sie das Programm, das ich einen Fehler, weil der Null Referenz. aber wenn ich diesen Code verwende:

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

Ich bekomme keinen Fehler und das Programm funktioniert einwandfrei! Was ist das Problem?

Antwort

1

Try WebConfigurationManager statt ConfigurationManager

+3

Sie brauchen WebConfigurationManager nicht, um eine Verbindungszeichenfolge zu lesen. – slfan

10

hinzufügen Referenz verwenden System.Configuration hinzuzufügen: -

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

Auch können Sie die WebConfig-Datei ändern den Namen des Anbieters enthalten: -

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

das funktionierte für mich. Vielen Dank! – UniCoder

2

versuchen Sie dies

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

Sind Sie sicher, dass Ihre Konfigurationsdatei (web.config) an der richtigen Stelle ist und die Verbindungszeichenfolge wirklich in der (generierten) Datei ist? Wenn Sie Ihre Datei veröffentlichen, wird möglicherweise der Inhalt von web.release.config kopiert.

Die Konfiguration und der Zugriff auf die Verbindungszeichenfolge sieht für mich richtig aus. Ich möchte hinzufügen, immer einen Provider

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

C# -Code:

using System.Configuration; 
using System.Data 

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

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

Versuchen Sie, diese Nach dem Öffnen der Datei web.config in Anwendung und fügen Beispiel db Verbindung in VerbindungStrings Abschnitt wie diese

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