var connection = ConnectionFactory.GetConnection(
    ConfigurationManager.ConnectionStrings["Test"]
    .ConnectionString, DataBaseProvider);

这是我的app。config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <connectionStrings>
        <add name="Test" connectionString="Data Source=.;Initial Catalog=OmidPayamak;Integrated Security=True" providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

但是当我的项目运行时,这是我的错误:

对象引用未设置为对象的实例。


当前回答

似乎问题不在于引用,你得到的connectionstring为空,所以请确保你已经将该值添加到配置文件中,你正在运行的项目意味着首先启动/执行的主程序/库。

其他回答

我引用了系统。配置库和我有同样的错误。 调试文件没有他们的app.config,手动创建这个文件。 错误是,我解决了这个复制文件“appname.exe。debug文件夹中的Config”。IDE没有创建该文件。

我也有同样的问题。我的解决方案是由两个项目组成的。一个类库和一个引用类库项目的网站。问题是,我试图在我的类库项目中访问App.config,但系统正在Web中搜索。网站配置。我把连接字符串放在Web中。配置和…问题解决了!

主要原因是,尽管ConfigurationManager在另一个程序集中使用,但它正在运行的项目中进行搜索。

试试这个

string abc = ConfigurationManager.ConnectionStrings["CharityManagement"].ConnectionString;

这个问题中的OP可能试图在dll中使用App.Config。

在这种情况下,代码实际上是试图访问可执行文件的App.Config,而不是dll。因为没有找到名称,所以返回Null,因此出现了异常。

下面的帖子可能会有所帮助: DLL的app.config中的ConnectionString为空

这招对我很管用:

string connection = System.Configuration.ConfigurationManager.ConnectionStrings["Test"].ConnectionString;

输出:

数据源=.;初始目录=OmidPayamak;集成安全性=True"