-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

例外が発生する可能性があるポイントがいくつかあります。

IsSelected列が存在するかどうか、HasResultおよびLeftSideそれらの値がブール値であるかどうかを確認することをお勧めします。そうでない場合、実行し(bool)ている型キャストはこの種の例外を引き起こします。Null 値もこの問題を引き起こします。

列に期待値がある場合は、メソッドSaveSelectedが例外をスローしていないかどうかを確認してください。

例外をトリガーする正確な行を提供していただければ、非常に役立ちます。

于 2013-10-01T13:33:01.710 に答える
0

ほとんどの場合、デバッガーはどこで問題が発生したかを提供します。IsSelected、HasResult、LeftSide のいずれかの列名が存在しない可能性があります。

于 2013-10-01T13:33:13.300 に答える