【问题标题】:Get connection string from app.config从 app.config 获取连接字符串
【发布时间】:2011-05-16 09:45:08
【问题描述】:

我正在尝试打这个简单的电话:

DataContext dc = new DataContext(ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString)

这是我的 app.config 文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <add name="MyDB" connectionString="Server=STEVEN-PC;Database=MyDB;Trusted_Connection=yes;" />
  </connectionStrings>
</configuration>

但我收到一个错误:对象引用未设置为对象的实例。

找不到连接字符串。我做错了什么?

【问题讨论】:

  • 确定您的 app.config 与可执行文件在同一路径中?
  • @Inuyasha - 我有一个包含多个项目的 Visual Studio 解决方案。 app.config 和我从中调用的文件在同一个项目中。
  • 我总是喜欢通过将 app.config 的调用与实例化 dataContext 分开来确认我的假设。只是为了确保那是我失败的地方。你可能是对的,但它时不时地揭示出一些意想不到的东西。
  • 你提到有几个项目。 app.config 是你的启动项目吗?如果没有,您必须将连接字符串添加到启动项目中的 app.config。

标签: c# asp.net


【解决方案1】:

一个常见错误是尝试从引用项目而不是可执行项目(网站或 .exe 项目)中的 app.config 读取连接字符串。您可能需要将包含连接字符串的配置设置复制到您的主配置文件中。

【讨论】:

    【解决方案2】:

    仔细检查构建目录中配置文件的存在和内容。如果配置文件到位,该代码应该可以正常工作。

    您还可以将连接字符串放入一个局部变量中,这样您就可以确定空引用异常发生在您认为的位置。

    【讨论】:

    • 第二段正是我的想法。我会试试的。
    • 我将连接字符串设置为一个局部变量,这是我得到空引用异常的地方。
    【解决方案3】:

    您可能需要指定 providerName:

    <add name="MyDB" connectionString="Server=STEVEN-PC;Database=MyDB;Trusted_Connection=yes;" providerName="System.Data.SqlClient" />
    

    【讨论】:

    • 这不是必需的,即使指定了,他的代码也不会访问该属性。
    猜你喜欢
    • 2011-09-26
    • 2013-11-08
    • 2017-09-22
    • 2015-01-10
    • 2010-12-22
    • 2013-02-01
    • 2023-04-04
    • 2012-10-07
    相关资源
    最近更新 更多