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>

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

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


当前回答

为了从app.cfg(在windows服务应用程序中)读取连接字符串,下面的代码对我有用

 var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    var connectionStringsSection = (ConnectionStringsSection)config.GetSection("connectionStrings");
    connectionStringsSection.ConnectionStrings["CONNECTIONSTR"].ConnectionString = @"New Connection String";

其他回答

你有没有试过:

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

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

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

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

string sTemp = System.Configuration.ConfigurationManager.ConnectionStrings["myDB In app.config"].ConnectionString;

您可以使用下面的代码行获取连接字符串-

using System; using System.Configuration;

var connectionString=ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;

这里有一个参考: App.config中的连接字符串