繁体   English   中英

C#,Winform,SQL Server和配置文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM