C# 对象引用未设置为对象的实例

C# 对象引用未设置为对象的实例,c#,C#,今天我的机器在玩我吗 当我运行这个对象的TestConnectionString()方法时,我在连接字符串设置中得到了错误 public class CustomerDAL { string connectionString = ConfigurationManager.ConnectionStrings["myConnection"].Name; public CustomerDAL() { } public string TestConnectio

今天我的机器在玩我吗

当我运行这个对象的
TestConnectionString()
方法时,我在连接字符串设置中得到了错误

public class CustomerDAL
{
   string connectionString = ConfigurationManager.ConnectionStrings["myConnection"].Name;

    public CustomerDAL()
    {

    }

    public string TestConnection()
    {
        System.Data.SqlClient.SqlConnection conn =  new System.Data.SqlClient.SqlConnection(connectionString);
        conn.Open();

        if (conn.State == System.Data.ConnectionState.Open)
        {
            return "Open";
        }
        else
        {
            return "Close";
        }
     }
}

如果
ConnectionStrings[“myConnection”]
返回null,那么在构造函数中取消对它的引用以获取
Name
属性将失败。那肯定不是bug所在的地方吗

为什么不在那一行上放一个断点,然后查看
ConfigurationManager.connectionString
,检查它认为自己得到了什么,并非常仔细地检查输入错误


然后,在方法的第一行上放置一个断点,并检查
connectionString
的值是多少。将
null
传递给
SqlConnection
构造函数实际上并不会引发异常,但当您尝试打开它时,会得到一个
invalidoOperationException

我有三个建议

  • 您需要为configuration manager添加.dll引用
  • 重新检查连接字符串是否正确
  • 检查是否有多个配置文件,例如web.config和app.config;因此ConfigurationManager在解决方案中引用了错误的文件

  • 今天早上,我对一个完美运行的代码也有同样的问题。问题是db服务器本身,它拒绝来自我们ip地址的连接(网络提供商更改了我们的ip地址)


    SqlConnection对象以某种方式给出了“对象引用未设置为对象的实例”,而不是从db服务器转发原始响应。

    Jon~我应该知道得更清楚。我的货满了。它位于“应用设置”部分。