今天做机房收费系统时,将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、重复定义造成未将对象引用设置到对象的实例错误.
对于这种问题,一方面是我们要慢慢的积累经验,一方面要心思缜密细,写代码潜意识要主动防范。