<span style="font-family: verdana, Arial, Helvetica, sans-serif; font-size: 14.44444465637207px; line-height: 27.77777862548828px; background-color: rgb(255, 255, 255);">先摘抄一个重要的知识点:</span>
“System.NullReferenceException: 未将对象引用设置到对象的实例”问题可能原因如下:
1、ViewState 对象为Null。
2、DateSet 空。
3、sql语句或Datebase的原因导致DataReader空。
4、声明字符串变量时未赋空值就应用变量。
5、未用new初始化对象。
6、Session对象或者appalication为空。
7、对控件赋文本值时,值不存在。
8、使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值。
9、使用FindControl时,控件不存在却没有做预处理。
10、重复定义造成未将对象引用设置到对象的实例错误.
我在查找数据时用到语句:String SQL_str="select deviceid,avg(density)density from M_I_DENSITY where ··············";这里deviceid为检测点名称,density为客流密度,M_I_DENSITY为客流密度数据表
获得数据表:DataTable d_table=conn.GetDataTable(SQL_str);这里的conn为数据连接类,GetDataTable为自定义函数功能是通过SQL语句获得数据表
使用数据表得到数据
if(d_table.Rows.count==0)//这里总是提示:“未将对象引用设置到对象的实例”
{
相关操作
}
else
{
for(int i=0;i<d_table.Rows.count;i++)
{
变量获得的数据表,将数据存到字典中,以数据对的形式存放,便于查找
}
}
后来将数据查询方式修改为
String SQL_str="select deviceid,round(avg(density),3)density from M_I_DENSITY where ··············";
问题解决,记录以备以后需要·····················································
应该属于上面第三种,由于sql语句引起的,估计因为avg(density)默认数据保留位太长,超过系统数据位数,所以需要截断小数