0

xyz.exe という名前の C# winform アプリがあります。xyz.config ファイルを使用して動作します。構成ファイルはプレーンテキストファイルであり、反復する必要がある回数、読み取るファイル、デフォルト値など、アプリを実行するために必要な設定を入れます。問題なく動作します。すべて正常に動作しています。今日、私はいくつかの拡張要求に取り組み始めました。SQL Server データベースに接続して、いくつかの情報を取得する必要があります。非常に簡単です。

デバッグ (F5) を実行すると、すべて正常に動作します。しかし、xyz.exe と入力してコマンド プロンプトから実行すると、「'System.Data.SqlClient.SqlConnectionFactory' の型初期化子が例外をスローしました。」という例外がスローされます。接続セクションを指します。xyz.config の名前を別のものに変更すると、例外はなくなりました。空の App.config を作成すると (これにより xyz.exe.config が生成されます)、例外はなくなりました。

何が起こっている?誰かが私にこれを説明できますか?可能な解決策、オプション、最良の解決策は何ですか? 例外をスローせずに、アプリが xyz.config および xyz.exe.config を検索しないようにすることが可能です。dbへの接続を導入する前は大丈夫でした。

SqlConnection connection = new SqlConnection(
                                "user id=xx;" +
                                "password=xx;" +
                                "server=xx;" +
                                "database=xx; " +
                                "connection timeout=xx");

try
{
   connection.Open();
}

catch (Exception e)
{
   Console.WriteLine(e.ToString());
}

try
{
   SqlDataReader myReader = null;
   SqlCommand myCommand = new SqlCommand("select * from xx",
                                                             connection);
   myReader = myCommand.ExecuteReader();
   while (myReader.Read())
   {
      Console.WriteLine(myReader["xx"].ToString());
      Console.WriteLine(myReader["xx"].ToString());
   }
}
catch (Exception e)
{
   Console.WriteLine(e.ToString());
}
connection.Close();
4

1 に答える 1

0

構成ファイルには名前を付ける必要があります。<exename>.exe.configたとえば、exe 名が の場合xyz.exe、その構成ファイル名はxyz.exe.config.

非標準の名前を使用する場合は、構成ファイルを手動で読み取る必要があります。

于 2013-11-06T22:55:13.830 に答える