在用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,程序不会报错了。