今天做机房收费系统时,将DataGridView中的数据导入到Excel中,当运行到这一句代码”xlApp.Cells(rows + 2, j + 1) = DataGridView1(j, rows).Value.ToString “时,出现了”未将对象引用设置到对象的实例“这种情况。后来经过调试发现是将DataGridView中的空行导入到Excel中,也就是循环到DataGridView中的单元格时此单元格却没有赋值的问题。引起这种”未将对象引用设置到对象的实例“的根源,归结为一点” 对控件赋文本值时,值不存在。 我对“未将对象引用设置到对象的实例”这种现象,经过查阅资料做了一下总结。

1、ViewState 对象为Null。

2、DateSet 空。

3、sql语句或Datebase的原因导致DataReader空。

4、声明字符串变量时未赋空值就应用变量。

5、未用new初始化对象。

6、Session对象为空。

7、对控件赋文本值时,值不存在。

8、使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值。

9、使用FindControl时,控件不存在却没有做预处理。

10、重复定义造成未将对象引用设置到对象的实例错误.

对于这种问题,一方面是我们要慢慢的积累经验,一方面要心思缜密细,写代码潜意识要主动防范。