1

我有以下代码行,

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

这将返回

System.NullReferenceException; 你调用的对象是空的。

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

我该如何正确处理这个?

4

3 回答 3

1

尝试

if(sitesformdataset!=null&&sitesformdataset.Tables["Sites"]!=null)
{
sitetb.Text = sitesformdataset.Tables["Sites"].Rows[_selectedindex].Field<string>("SiteName").ToString();
}
于 2013-09-26T08:15:19.173 回答
0

你不需要打电话.ToString()

.Field<string>("SiteName")转换为 string ,你不需要再次调用 tostring 。

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

如果你的单元格值为 null 那么你不能调用ToStringnull 对象的方法,那将失败。

于 2013-09-26T08:16:41.780 回答
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();
于 2013-09-26T08:14:47.957 回答