System.NullReferenceException:未将对象引用设置到对象的实例
//自定义ResultInfo()方法,实现提取指定信息,并将其显示在相应的文本框控件中,可是显示未将对象引用设置到对象的实例,排错了好长时间,无果,就高手指点
private void ResultInfo(int j)
{
try
{
DataSet dsNew = DtReslut(j);
this.txbClassName.Text = dsNew.Tables[0].Rows[0][0].ToString();//出错的地方
this.txbClassNumber.Text = dsNew.Tables[0].Rows[0][1].ToString();
this.txbGrade.Text = dsNew.Tables[0].Rows[0][2].ToString();
this.txbShortName.Text = dsNew.Tables[0].Rows[0][3].ToString();
this.txbTeacher.Text = dsNew.Tables[0].Rows[0][4].ToString();
this.txbNo.Text = dsNew.Tables[0].Rows[0][5].ToString();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
[解决办法]
DtReslut(j)执行返回的DataSet是null吧。你设断点看看dsNew里有没有内容。
[解决办法]
DataSet dsNew = DtReslut(j);
dsNew 取到值了吗?调试一下,
[解决办法]
DataSet dsNew = DtReslut(j);
跟踪调试下代码
这个dsNew为null值了,所以后面肯定报空异常了。
[解决办法]
dsNew是null或者dsNew里的Table的数量是0,或者Table里的行数是0或者列数是0,就这几种情况了
[解决办法]
加一个条件
if(dtNew!=null)
{
.......
}
[解决办法]
- C# code
DataSet dsNew = DtReslut(j);if(dtNew!=null){ if(dtNew.Talbes[0].Rows.count>0) { this.txbClassName.Text = dsNew.Tables[0].Rows[0][0].ToString();//出错的地方 this.txbClassNumber.Text = dsNew.Tables[0].Rows[0][1].ToString(); this.txbGrade.Text = dsNew.Tables[0].Rows[0][2].ToString(); this.txbShortName.Text = dsNew.Tables[0].Rows[0][3].ToString(); this.txbTeacher.Text = dsNew.Tables[0].Rows[0][4].ToString(); this.txbNo.Text = dsNew.Tables[0].Rows[0][5].ToString(); }}
[解决办法]