DataGridView Null引用异常

本文关键字:异常 引用 Null DataGridView | 更新日期: 2023-09-27 18:12:17

我有一个webservice,它使用几个webmethods填充我的DataGridView

没有这个代码一切都很好,但我需要的图片改变取决于所选择的行和图片的名称将在一个静态列,不会改变。

我要做的是,在我的webmethod中,向它发送一个等于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语句添加到顶部,但似乎没有修复它。

DataGridView Null引用异常

三种可能:

  1. i的值不正确(例如-1)
  2. Value在Cells[5]是NULL,所以当你调用ToString()时爆炸。
  3. Cells[5]不存在。也就是说,它可能是另一个索引,比如4。记住,索引是从零开始的。

根据你的评论,将你的行改为:

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

发现由于某种原因索引5返回null,而单元格中有一个值。因此,我编写了通过列名获取值的代码它找到了值并且正在工作

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