DataGridView Null引用异常

时间:2011-10-25 18:35:54

标签: c# winforms datagridview

我有一个网络服务,使用几个网络方法填充我的DataGridView

如果没有这个代码,一切都很好但我需要根据所选行更改图片,图片名称将放在一个不会改变的静态列中。

我想要做的是,在我的网络方法中,发送一个等于picture1.jpg的图片名称。

在Windows应用程序中,我正在使用此代码:

int i;
i = memdataGV.SelectedCells[0].RowIndex;
var pictext = memdataGV.Rows[i].Cells[5].Value.ToString();
pictureBox1.ImageLocation = "C:\\Pictures\\" + pictext;

DataGridView首先填充一切正常时,但是当我点击其中一个按钮事件时,它会在以下行引发异常:

var pictext = memdataGV.Rows[i].Cells[5].Value.ToString();
  

NullReferenceException未处理

我尝试调试代码,然后将if语句添加到顶部但是似乎没有修复它。

2 个答案:

答案 0 :(得分:2)

三种可能性:

  1. i的值不正确(例如,-1)
  2. 单元格[5]上的
  3. ValueNULL,因此当您致电ToString()时会爆炸。
  4. Cells[5]不存在。 I.E.也许它是另一个索引,例如4。记住,索引是从零开始的。
  5. 根据您的评论,将您的行更改为:

    var pictext = memdataGV.Rows[i].Cells[5].Value==null?string.empty:memdataGV.Rows[i].Cells[5].V‌​alue.ToString();
    

答案 1 :(得分:-1)

由于某种原因计算出索引5返回null并且单元格中有一个值。所以我做了代码来通过找到值并且正在工作的列名来获取值

 string pictext = Convert.ToString(selectedRow.Cells["PHOTOID"].Value)