3

C# コードで何かを実行しようとすると、次のエラーが発生します。

System.InvalidOperationException was unhandled by user code
Message=No connection string configured

そしてそれは次のコードで起こります。

if (System.Configuration.ConfigurationManager.ConnectionStrings["DBContext"] == null)
{
     throw new System.InvalidOperationException("No connection string configured");
}

connectionString = string.Format("{0};Application Name={1}", System.Configuration.ConfigurationManager.ConnectionStrings["DBContext"].ConnectionString, this.applicationName);

ヌルSystem.Configuration.ConfigurationManager.ConnectionStrings["DBContext"]も同様です。関連する可能性のある1つの質問:「接続文字列プロパティが初期化されていません」を修正する方法は、構成ファイルに問題がある可能性があることを示唆しています。現時点では、どういうわけか誤って構成ファイルを削除してしまったのではないかと心配しています。

また、ドキュメントでこれを読んでください:

Returns a ConnectionStringSettingsCollection object that contains the contents of the ConnectionStringsSection object for the current application's default configuration. 

デフォルト値が含まれているので、誤って削除したに違いない構成ファイルにあると思います。

私が正しければ、どれをどこに置くべきか、何を含めるべきかわかりません。私が間違っていれば、それがどこから来たのかわかりません。では、System.Configuration.ConfigurationManager.ConnectionStrings["DBContext"] はどこに設定されているのでしょうか? または、この問題を解決するにはどうすればよいですか?

4

2 に答える 2

8

.NET の接続文字列は、構成ファイル (コンソール/Windows アプリの場合は app.config、Web アプリの場合は web.config) から取得されます。

プロジェクトを右クリックして正しいファイルを追加することで、新しい構成ファイルをプロジェクトに追加できます。その構成ファイルに次のセクションがあることを確認してください。

<configuration>
  <connectionStrings>
    <add name="DBContext" connectionString="data source=.\SQLEXPRESS;Initial Catalog=databasename;Integrated Security=SSPI" providerName="System.Data.SqlClient" />
  </connectionStrings>
  ...
</configuration>

もちろん、接続文字列を環境に適したものに置き換える必要があります (たとえば、databasename をデータベース名に置き換えます)。

于 2012-05-25T20:57:12.933 に答える
2

プロジェクトが正しい構成ファイルを参照していない可能性があります。app.config ファイルは 1 つだけにする必要があります。

.exe ファイルを生成しているプロジェクトに app.config を追加していることを確認する必要があります。

出力ディレクトリに移動し、.exe.config ファイルを開きます。内容は期待したものと一致していますか?

于 2014-09-30T14:16:57.943 に答える