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();
}
}
------解决方案--------------------