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为空,所以请确保你已经将该值添加到配置文件中,你正在运行的项目意味着首先启动/执行的主程序/库。

其他回答

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

using System; using System.Configuration;

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

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

//Get Connection from web.config file
public static OdbcConnection getConnection()
{
    OdbcConnection con = new OdbcConnection();
    con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["con"].ConnectionString;
    return con;     
}

我通过使用索引读取字符串并逐个检查来解决这个问题。使用名称进行读取仍然会给出相同的错误。 我有一个问题,当我开发一个c#窗口应用程序,我没有在我的asp.net应用程序的问题。一定有什么地方不太对劲。

你有没有试过:

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

试试这个

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