数据表;你调用的对象是空的

时间:2013-09-26 08:10:32

标签: c# datatable

我有以下代码行,

sitetb.Text = sitesformdataset.Tables["Sites"].Rows[_selectedindex].Field<string>("SiteName").ToString();

返回

  

System.NullReferenceException;对象引用未设置为实例   一个对象。

我知道为什么它会返回此异常,因为该单元格中没有任何内容。

我如何正确处理?

3 个答案:

答案 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方法,那将失败。