异常:System.NullReferenceException:对象引用未设置为对象的实例。在C#中?

异常:System.NullReferenceException:对象引用未设置为对象的实例。在C#中?,c#,C#,编辑: 我已经调试过了,我发现一旦我填充了所有字段,自动生成一个空的新行,一旦它存储在dabase中,它就会跟随foreach循环,并自动检测空引用这是一个图像,我希望您理解我img8.imageshack.us/I/error3xh.jpg 我需要你的帮助,我无法控制异常,这是我的方法,错误是System.NullReferenceException:Object reference未设置为对象的实例“,我如何修复它,控制exeption,不再发送这种类型的消息?无论其结构如何:错误是行**i

编辑:


我已经调试过了,我发现一旦我填充了所有字段,自动生成一个空的新行,一旦它存储在dabase中,它就会跟随foreach循环,并自动检测空引用这是一个图像,我希望您理解我img8.imageshack.us/I/error3xh.jpg

我需要你的帮助,我无法控制异常,这是我的方法,错误是System.NullReferenceException:Object reference未设置为对象的实例“,我如何修复它,控制exeption,不再发送这种类型的消息?无论其结构如何:错误是行**if(combo3==null | | combo4==null)**

这是完全的错误

埃斯泰门萨耶领事馆 obtener más detalles sobre cómo 我们及时赶到了 (JIT)在您的房间里 迪亚标志

**************Texto de la excepción***************System.NullReferenceException: 参考不动产的目标 这是一个很好的例子 Office.Form1.btnCronograma\u单击(对象 发送方,事件参数e)en C:\Users\amaury\Documents\TEC\Septimo Semestre\administration de proyectos 德因杰里亚德酒店 softwaere\nuevo4\nuevo\Office\Office\Form1.cs:línea 726英 System.Windows.Forms.Control.OnClick(EventArgs e) 嗯 System.Windows.Forms.Button.OnClick(EventArgs e) 嗯 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)en System.Windows.Forms.Control.WmMouseUp(消息& m、 鼠标按钮按钮,Int32点击) EN System.Windows.Forms.Control.WndProc(消息& m) 嗯 System.Windows.Forms.ButtonBase.WndProc(消息& m) 嗯 System.Windows.Forms.Button.WndProc(消息& m) 嗯 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(消息& m) 嗯 System.Windows.Forms.Control.ControlNativeWindow.WndProc(消息& m) 嗯 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd、Int32 msg、IntPtr wparam、IntPtr (内存)


我认为最有可能的原因是
行。单元格[3]。Value
行。单元格[4]。Value
为null(因为您没有给它们赋值),并且
.ToString()
引发null异常

将代码更改为:

int meta = int.Parse(row.Cells[3].Value == null ? "0" : row.Cells[3].Value.ToString());
int real = int.Parse(row.Cells[4].Value == null ? "0" : row.Cells[4].Value.ToString());  

这只是在黑暗中拍摄,但标题行是集合中的一行。请尝试添加

if(row.index != 0)
就在
foreach
中。我记不起来了,但索引可能是-1。

如何调试:

在调试模式(Visual Studio中的F5)下运行应用程序并引发异常时,Visual Studio将停止并以黄色突出显示一行。此处引发了异常。在此行放置一个断点,重新启动应用程序,当它在断点处停止时,将鼠标悬停在该行上以观察空值

if(combo3==null | | combo4==null)
无法引发NullReferenceException。我猜您运行的是旧版本的.exe,因此它会报告旧的行号


从您的代码来看,
row.Cells[3].Value
combo3.Value
似乎都是空的。提示:在点“
”之前不能有空值。

哪一行给出了错误?我猜是
int.Parse
行中的一行。如果(combo3==null | combo4==null),则错误在该行中我删除了那一行,错误出现在foreach中(dataGridView8.Rows中的DataGridViewRow),我不知道尝试将错误捕获为文本而不是屏幕截图。@peggalvan你能告诉我们异常是在哪一行引发的吗?你的异常消息显示的是第726行,但我们无法分辨哪一行是该行,并且没有办法“如果”(combo3==null | | combo4==null)“可能会导致异常。您的意思是使用break;而不是continue;?dataGridView8是什么?它是否有值?dataGridView8.Rows如何?添加MessageBox.Show(dataGridView8.ToString())和MessageBox.Show(dataGridView8.Rows.Count.ToString())不,我只是删除了那一行,但现在错误出现在foreach中(dataGridView8.Rows中的DataGridViewRow行),datagridview8在我的图像中,它没有一个值,消息框中的一个值仅用于查看它是否采用了正确的值,取决于.net版本。您现在可以使用空合并运算符
如下所示:
int.Parse(row.Cells[x].value?.ToString()??“0”)
,这在我看来更容易阅读。有关更多信息,请参阅。我已经调试了,我发现,一旦我填充所有字段,自动生成一个空新行,并将其存储在dabase中,它将跟随foreach循环,并自动检测空引用这是一个图像,我希望您理解我img8.imageshack.us/I/error3xh.jpgI已经调试,当lopp foreach到达用户从combobox中选择某个内容后生成的空白空间时,row.cell[3].value和combo3.value为null,但是如何解决此问题,我尝试了,但没有任何结果帮助!!int idProyecto=int.Parse(combo3.value.ToString()==null?“0”:combo3.value.ToString());int idMes=int.Parse(combo4.Value.ToString()==null?“0”:combo4.Value.ToString());int meta=int.Parse(row.Cells[3]。Value==null?“0”:row.Cells[3]。Value.ToString());int real=int.Parse(row.Cells[4]。Value==null?“0”:row.Cells[4].Value.ToString());
if(row.index != 0)