DataRow newone = allTable.NewRow();newone[0] = ++id;
newone[1] = name;
newone[2] = DateTime.Now.AddSeconds(-60);
newone[3] = DateTime.Now;
newone[4] = "";
newone[5] = "";
newone[6] = false;
newone[7] = false;
newone[8] = "";allTable.Rows.Add(newone);程序比较大,我通过不断尝试,发现如果程序不加上面的代码运行很久都没有问题,
但是加了上面的代码就出现NullReferenceException,未将对象引用设置到对象的实例
不知道有没有人知道怎么回事,或者分享一些经验,帮我解决这个问题,
我调试得快要抓狂了
newone[1] = name;
newone[2] = DateTime.Now.AddSeconds(-60);
newone[3] = DateTime.Now;
newone[4] = "";
newone[5] = "";
newone[6] = false;
newone[7] = false;
newone[8] = "";allTable.Rows.Add(newone);程序比较大,我通过不断尝试,发现如果程序不加上面的代码运行很久都没有问题,
但是加了上面的代码就出现NullReferenceException,未将对象引用设置到对象的实例
不知道有没有人知道怎么回事,或者分享一些经验,帮我解决这个问题,
我调试得快要抓狂了
解决方案 »
- tabControl控件怎么实现透明
- ListView绑定了一个List<>集合,有没有方法找到集合某一项对应的ListViewItem中的控件
- 高分求助,不够可以再开贴,Outlook AddIns,怎样修改选定Email的图标。
- System.IO.BinaryWriter.Write的问题
- 如何给datagrid排序
- 切换界面时界面刷新慢,怎么解决
- 求高手解答
- 如何设置DateTime的值为NULL?myCommand.Parameters.Add("@arrivalTime", null);
- 数据动态绑定的问题
- 请问C#中的取字符串的子串呢?????
- 打包时,如何处理COM组件(excel),制作安装文件时出错:“可能具有不能自动确定的依赖项”,如何处理
- 面试回来,请问下面的题目改如何回答?
你可以在这句:
DataRow newone = allTable.NewRow();
按F9设断点,按F5运行程序。
再进行F11单步执行,看到底是哪句抛出的空引用异常.
at System.Windows.Forms.UnsafeNativeMethods.PeekMessage(MSG& msg, IntPtr hwnd, Int32 msgMin, Int32 msgMax, Int32 remove)
at System.Windows.Forms.ComponentManager.System.Windows.Forms.UnsafeNativeMethods+IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at GUI.GUI.Main() in d:\work\\gui\form1.cs:line 322" string
这些异常信息也很难看出什么来
如果除上面的错误,应该是DataRow newone = allTable.NewRow();创建失败。
在后面加一个Assert,Debug.Assert(newone != null);
如果是创建行失败,那么你的程序就不能一味着添加新的行,好考虑其他处理机制。