我有以下代码行,
sitetb.Text = sitesformdataset.Tables["Sites"].Rows[_selectedindex].Field<string>("SiteName").ToString();
返回
System.NullReferenceException;对象引用未设置为实例 一个对象。
我知道为什么它会返回此异常,因为该单元格中没有任何内容。
我如何正确处理?
答案 0 :(得分:1)
尝试
if(sitesformdataset!=null&&sitesformdataset.Tables["Sites"]!=null)
{
sitetb.Text = sitesformdataset.Tables["Sites"].Rows[_selectedindex].Field<string>("SiteName").ToString();
}
答案 1 :(得分:0)
如果您已经检查过_selectedindex
!= -1并且位于正确的范围内,请更正这样的代码:
sitetb.Text = (sitesformdataset.Tables["Sites"].Rows[_selectedindex].Field<string>("SiteName")?? "").ToString();
这是对此的简短描述:
var cellContetnt = sitesformdataset.Tables["Sites"].Rows[_selectedindex].Field<string>("SiteName");
if(cellCount == null)
sitetb.Text = "";
else
sitetb.Text = cellContent.ToString();
答案 2 :(得分:0)
您无需致电.ToString()
.Field<string>("SiteName")
转换为字符串,您不需要再次调用tostring。
sitetb.Text = sitesformdataset.Tables["Sites"].Rows[_selectedindex].Field<string>("SiteName");
如果您的单元格值为null,那么您无法调用null对象的ToString
方法,那将失败。