Frage

Wenn ich meine Anwendung starten erhalte ich:. Die Connectionstring-Eigenschaft wurde nicht initialisiert

Web.config:

<connectionStrings>
    <add name="MyDB"
         connectionString="Data Source=localhost\sqlexpress;Initial Catalog=mydatabase;User Id=myuser;Password=mypassword;" />
</connectionStrings>

Der Stapel Wesen:

System.Data.SqlClient.SqlConnection.PermissionDemand() +4876643
System.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection) +20
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117
System.Data.SqlClient.SqlConnection.Open() +122

Ich bin ziemlich neu in .NET und ich habe nicht diese. Ich fand eine Menge Antworten auf Google, aber keine feste wirklich mein Problem.

Was bedeutet das? Ist mein web.config schlecht? Ist meine Funktion schlecht? Ist meine SQL-Konfiguration nicht richtig funktioniert (ich verwende sqlexpress)?

hier Mein Hauptproblem ist, dass ich nicht sicher bin, wo ich anfangen soll diese zu debuggen ... etwas helfen würde.

EDIT:

failling Code:

MySQLHelper.ExecuteNonQuery(
ConfigurationManager.AppSettings["ConnectionString"],
CommandType.Text,
sqlQuery,
sqlParams);

sqlquery ist eine Abfrage wie "select * from table". sqlParams ist hier nicht relevant.

Das andere Problem ist, dass mein Unternehmen verwendet MySQLHelper, und ich habe keine Sicht auf sie (nur eine DLL für einen Helfer lib). Es wird gearbeitet, in anderen Projekten in Ordnung, ich bin also 99%, dass der Fehler nicht von hier kommt.

Ich denke, wenn es keine Möglichkeit gibt es von debug, ohne den Code zu sehen, muß ich werde mit der Person in Kontakt zu treten warten, die diese Helfer geschaffen, um den Code zu erhalten.

War es hilfreich?

Lösung

die Verbindungszeichenfolge Referenzierung sollte als solche durchgeführt werden:

MySQLHelper.ExecuteNonQuery(
ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString,
CommandType.Text,
sqlQuery,
sqlParams);

ConfigurationManager.AppSettings["ConnectionString"] würde im AppSettings für etwas namens ConnectionString suchen, die es nicht finden würde. Deshalb ist Ihre Fehlermeldung der "ConnectionString" property has not been initialized angezeigt, weil es für eine initialisierten Eigenschaft AppSettings namens ConnectionString suchen.

ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString weist für die Verbindung Zeichenfolge mit dem Namen "MyDB".

aussehen

Hier ist jemand reden über web.config Verbindungszeichenfolgen mit

Andere Tipps

Sie diese Fehlermeldung erhalten, wenn eine Datenquelle, um Daten zu binden versucht, aber nicht kann, weil er die Verbindungszeichenfolge nicht finden kann. Meiner Erfahrung nach ist dies nicht in der Regel aufgrund eines Fehlers in der web.config (obwohl ich dies nicht 100% sicher bin).

Wenn Sie programmatisch sind eine Datenquelle (wie ein SqlDataSource) zuweisen oder das Erstellen einer Abfrage (das heißt mit einem SqlConnection / SqlCommand Kombination), stellen Sie sicher, dass Sie es ein Connectionstring zugeordnet.

SqlConnection myCon = new SqlConnection(ConfigurationManager.ConnectionStrings[nameOfString].ConnectionString;

Wenn Sie ein Databound-Element zu einer Datenquelle (das heißt ein Gridview oder Combo-Box zu einem SqlDataSource) Einhaken, stellen Sie sicher, dass die Datenquelle zu einem Ihrer Verbindungszeichenfolgen zugeordnet ist.

Senden Sie Ihren Code (für das Databound-Element und der web.config sicher zu sein) und wir können einen Blick an ihm nehmen.

EDIT: Ich denke, das Problem ist, dass Sie versuchen, die Connection String aus dem AppSettings-Bereich zu bekommen, und programmatisch das ist nicht dort, wo es vorhanden ist. Versuchen Sie ersetzen, dass mit ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString (wenn Connectionstring der Name Ihrer Verbindungszeichenfolge ist.)

Die Verbindungszeichenfolge ist nicht in AppSettings .

Was Sie suchen ist in:

System.Configuration.ConfigurationManager.ConnectionStrings["MyDB"]...

Verwenden Sie [] statt () als Beispiel unten.

SqlDataAdapter adapter = new SqlDataAdapter(sql, ConfigurationManager.ConnectionStrings["FADB_ConnectionString"].ConnectionString);
            DataTable data = new DataTable();
            DataSet ds = new DataSet();

Einfach-Code Behind Seite Verwendung: -

SqlConnection con = new SqlConnection("Data Source = DellPC; Initial Catalog = Account; user = sa; password = admin");

Es sollte gut funktionieren

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top