C#、Winform、Sql Server和配置文件
我有一个名为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之前,一切正常C#、Winform、Sql Server和配置文件,c#,sql-server,winforms,app-config,C#,Sql Server,Winforms,App Config,我有一个名为xyz.exe的C#winform应用程序。它使用xyz.config文件进行操作。配置文件是一个纯文本文件,我将运行应用程序所需的设置放在其中,例如需要迭代多少次、要读取哪些文件、默认值是什么等等。它工作正常。一切正常。今天我开始处理一些增强请求,我需要连接到sql server数据库并检索一些信息。非常直截了当 如果我运行调试(F5),一切正常。但是如果我在命令提示符下键入xyz.exe来运行它,它会抛出异常“System.Data.SqlClient.SqlConnection
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();
配置文件应命名为
.exe.Config
,例如,如果您的exe名称为xyz.exe
,则其配置文件名应为xyz.exe.Config
如果要使用非标准名称,必须手动读取配置文件。您的配置文件应命名为xyz.exe.config。在命令行中运行的文件夹中,它的名称是这样的吗?我的配置文件是xyz.config。如果我创建了一个空的配置文件(add,new item,App.config),我将拥有xyz.exe。配置文件应命名为.exe.config。如果我没有sql连接,配置文件名似乎不会强制执行(因此我可以使用xyz.config)。这种强制执行是否可以被推翻?或者关闭?为什么不能使用默认名称?你有什么限制吗?我确实手动读取了配置文件。似乎你误解了这个问题。我尝试了一个简单的应用程序,它可以读取SQL Server,我根本不需要任何配置文件。有些东西使您的代码使用了不必要的
SqlConnectionFactory
。