[英]C#, Winform, Sql Server and Config file
我有一个名为xyz.exe的C#winform应用程序。 它使用xyz.config文件运行。 配置文件是一个纯文本文件,我在其中放置了我需要运行我的应用程序的设置,例如它必须迭代多少次,要读取哪些文件,默认值是什么等等。它工作得很好。 一切正常。 今天,我开始处理一些增强功能请求,我需要连接到sql服务器数据库并检索一些信息。 非常简单。
如果我运行调试(F5),一切正常。 但是,如果我通过键入xyz.exe在命令提示符下运行它,则会引发异常“ System.Data.SqlClient.SqlConnectionFactory的类型初始化程序引发了异常。” 它指向连接部分。 如果我将xyz.config重命名为其他名称,则异常消失。 如果我创建一个空白的App.config(这将生成xyz.exe.config),则该异常消失了。
到底是怎么回事? 谁能向我解释一下,可能的解决方案,选择和最佳解决方案是什么? 有可能使应用程序不查找xyz.config和xyz.exe.config,而不会引发异常。 在介绍与数据库的连接之前还可以。
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();
配置文件应命名为<exename>.exe.config
,例如,如果您的exe名称为xyz.exe
,则其配置文件名称应为xyz.exe.config
。
如果要使用非标准名称,则必须手动读取配置文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.