当先锋百科网

首页 1 2 3 4 5 6 7

在用c#操作数据库的时候遇到了该问题,由此记录一下解决方法:
在这里插入图片描述
调试的时候无法连接到数据库,提示“未将对象引用设置到对象的实例”。我查看我的代码,本来想的是“没问题啊,明明已经将数据库连接语句实例化了”。知道后来我单步调试查看变量的值,才发现了问题所在:
在这里插入图片描述
看到了没,有两个mysqcon,继续调试,发现:
在这里插入图片描述
一个被赋值了,即实例化,而另一个,仍旧为空。说明我的代码里有两个mysqlcon。再来看看我原来的代码

在这里插入代码片
   MySqlConnection mysqlcon = null;
        //构造函数,用来给database类传递参数
        public database(string s)
        {
            //this.connString = s;
            //this.mysqlcon = new MySqlConnection(s);
            MySqlConnection mysqlcon = new MySqlConnection(s);
        }

问题就出在代码里,原本类的成员变量里有一个mysqlcon ,而在构造函数里面我又新建了一个mysqlcon,虽然名字看起来一样,但实际上是两个不同的对象,由此找到了问题所在。

解决办法

说来也简单,在构造函数里面去掉自己定义的那个mysqlcon对象,用this.mysqlcon代替,这样就只有一个mysqlcon,程序不会报错了。