-1

当我执行下面的代码时,我得到了 NullReferenceException。

private void Move(bool isRight)
{
     SaveSelected();

     // Move the selected items over
     for (int index = 0; index < this.DataSource.Rows.Count; index++)
     {
           DataRow row = this.DataSource.Rows[index];

          if (isRight && (bool)row["IsSelected"] == true &&
             (bool)row["HasResult"] == false ||
             !isRight && (bool)row["IsSelected"] == false)
          {
               // move it by setting a flag which is used by the view
                   row["LeftSide"] = !isRight;
          }
      }
      this.BindData(EventArgs.Empty);       
}

请给我一个解决方案。

谢谢,尼兰詹

4

2 回答 2

0

有几个点可能会发生异常。

我建议您检查这些列是否存在IsSelectedHasResult并且LeftSide它们的值是布尔值;如果不是,(bool)您正在执行的类型转换将触发这种异常。空值也会导致此问题。

如果列具有预期值,请检查该方法SaveSelected是否未引发异常。

如果您向我们提供触发异常的确切行,这将是有价值的。

于 2013-10-01T13:33:01.710 回答
0

大多数情况下,您的调试器会为您提供出错的地方。可能是列名 IsSelected、HasResult、LeftSide 都不存在。

于 2013-10-01T13:33:13.300 回答