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

时间:2009-03-30 23:04:29

标签: c#

我的机器今天在玩我吗?

当我运行此对象的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";
        }
     }
}

3 个答案:

答案 0 :(得分:7)

如果ConnectionStrings["myConnection"]返回null,则取消引用它以获取Name属性将在构造函数中失败。这绝对不是bug的地方吗?

为什么不在该行上设置断点并查看ConfigurationManager.ConnectionStrings以查看认为的内容 - 并仔细检查 以进行拼写错误。

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

答案 1 :(得分:1)

我有三个建议

  1. 您需要为配置管理器添加.dll参考
  2. 重新检查您的连接字符串是否正确
  3. 检查您是否有多个配置文件。 web.config和app.config;所以ConfigurationManager在解决方案中引用了错误的文件。

答案 2 :(得分:0)

今天早上我的代码完全正常。问题是数据库服务器本身,它拒绝来自我们的IP地址的连接(网络提供商改变了我们的IP地址)。

不知何故,SqlConnection对象将“对象引用未设置为对象的实例”,而不是从数据库服务器中继原始响应。