【问题标题】:ConnectionString null after reading from app.config从 app.config 读取后 ConnectionString null
【发布时间】:2014-04-30 21:13:03
【问题描述】:

我正在使用 VS 2010 使用 C# 进行编程。 当我想打开与数据库的连接时,我将我的 ConnectionString 存储在 app.config - 文件中并从中读取。不幸的是,无论我在做什么,连接字符串总是“空”。这是我的 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 - 程序集的引用。

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

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;
       }
       }
}
}

【问题讨论】:

  • 什么意思我重命名为“options.config”
  • Renaming the app.config to options.config 很确定您的问题在这里,只要您将配置保持在标准 app.config 内,您的代码就可以正常工作

标签: c# .net


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2013-03-19
    • 2013-08-12
    • 2012-01-31
    • 2023-04-08
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    相关资源
    最近更新 更多