从app.config读取后,ConnectionString为null

时间:2014-04-30 12:57:42

标签: c# .net

我使用VS 2010在C#中编程。 当我想打开与数据库的连接时,我将我的ConnectionString存储在app.config文件中并从中读取。不幸的是,无论我做什么,连接字符串总是" null"这是我的app.config - 文件,我将其重命名为" options.config"。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="connstring"
     connectionString="Data Source=10.10.10.10;Initial Catalog=testdb;Integrated Security=SSPI"/>
  </connectionStrings>

</configuration>

我还添加了对System.configuration - assembly的引用。

然后只需从配置文件中读取:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Collections.Specialized;

namespace Test_Class
{
   public abstract class SQLConnectionString
    {
   static string connectionstring = ConfigurationManager.ConnectionStrings["connstring"].ConnectionString;

   public static string ConnectionString 
   {
       get
       {
           return connectionstring;
       }
       }
}
}

1 个答案:

答案 0 :(得分:2)

当您启动调试会话时,如果您有一个名为app.config的文件,则会将其复制到BIN \ DEBUG文件夹中并重命名为YourApplication.Exe.Config

此名称是ConfigurationManager期望在当前应用程序启动路径中找到的名称。

如果你将app.config重命名为不同的东西,那么这个机制就不再起作用了,你不能指望ConfigurationManager类在不同的文件中找到关于你的连接字符串的信息(至少不是一些额外的代码调整)。可能你在BIN \ DEBUG目录中有一个这个YourApplication.Exe.Config的旧副本。一个没有定义ConnectionStrings部分的部分。

我建议将文件重命名为app.config,让VS IDE完成它的工作。