1. ホーム
  2. c#

[解決済み】"The ConnectionString property has not been initialized "を修正する方法

2022-01-29 19:07:43

質問

アプリケーションを起動すると、次のようなメッセージが表示されます。 ConnectionString プロパティが初期化されていません。

Web.config:

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

スタックがあること。

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

私は.NETのかなり新しい人ですが、これはわかりません。Googleでたくさんの答えを見つけましたが、私の問題を解決してくれるものはありませんでした。

どういうことですか?私のweb.configが悪いのでしょうか?私の関数が悪いのか?私のSQLコンフィギュレーションが正しく機能していないのでしょうか(私はsqlexpressを使用しています)?

私の主な問題は、これをデバッグするためにどこから始めればいいのかわからないということです... 何でもいいので、助けてください。

EDIT

フェーリングコードです。

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

sqlQueryは、"select * from table"のようなクエリです。

ここでのもう一つの問題は、私の会社が MySQLHelper を使用しており、私はそれに対する可視性を持っていないことです(ヘルパー lib 用の dll を持っているだけです)。他のプロジェクトでは問題なく動作しているので、エラーがここから発生することはないと99%思っています。

コードを見ずにデバッグする方法がないのであれば、このヘルパーを作った人と連絡を取って、コードを入手するのを待つしかないと思います。

解決方法は?

接続文字列の参照はこのように行う必要があります。

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

ConfigurationManager.AppSettings["ConnectionString"] を探すことになります。 AppSettings という名前のものを ConnectionString と表示され、それが見つかりません。このため、エラーメッセージでは "ConnectionString" property has not been initialized の初期化されたプロパティを探しているからです。 AppSettings という名前の ConnectionString .

ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString は、"MyDB"という名前の接続文字列を探すように指示しています。

web.configの接続文字列を使用する方法について、次のような人が話しています。