c#:未将对象引用设置到对象的实例--可能出现的问题总结(转)

摘自:http://blog.csdn.net/sollion/article/details/5777475

一、网络上的一般说法

1、ViewState 对象为Null。
2、DateSet 空。
3、sql语句或Datebase的原因导致DataReader空。
4、声明字符串变量时未赋空值就应用变量。
5、未用new初始化对象。
6、Session对象为空。
7、对控件赋文本值时,值不存在。
8、使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值。
9、使用FindControl时,控件不存在却没有做预处理。
10、重复定义造成未将对象引用设置到对象的实例错误.

二、 (1)所设置的变量为空值或没有取到值,一般出现在传递参数的时候出现这个问题,也会在使用DataGrid或gridview或datalist等数据控件时出现.

  (2)控件名称与codebehind里面的没有对应

  (3)未用new初始化对象

  (4)在程序中所引用的控件不存在

  解决方法:

  (1)使用try..catch...finally捕捉错误,或直接用response.write()输出所取的变量值

  (2)查看代码中是否存在未初始化的变量

三、SqlConnection.Open   未将对象引用设置到对象的实例

在使用VS2003开发 ASP.NET程序时候 有时候操作 SqlConnection对象的Open()方法时候会出现

未将对象引用设置到对象的实例。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误: 
。。。。

conn.Open();

......

跟踪调试也肯定可以确定 对conn进行new 操作 但是程序经常在这个地方报错,但是有时候重启服务器或者重启IIS有能正常使用了。 怎么调试也找不到问题  那么这个时候可能是 你本机上安装的.NET FRAMEEWORK 框架有问题,可能没有没有安装SP1.1补丁  
需要打NET FRAMEEWORK1.1 SP1的补丁,到微软官方网站下载安装后就好了。

四、一般出现NullReferenceException异常的我个人总结有以下情况:

1、对象所在的命名空间没有引用
2、对象没有实例化
3、出现异常,实例化失败对象为 null

五、IIS 扛不住的时候,也会出现上面的错误。

当应用程序的用户访问量超过它能承受的范围之后,就会出错。
改善你的程序,使用缓存,尽量减少与数据库交互的次数。

六、我碰到的问题是,无意重置了DataSet引用,后出现这个问题,请大家好好查查自己的代码,是不是在其他地方重新引用了,在我的程序中DataSet被设置成全局对象。

七、当你发现所有的方法不行时,打上.netframework的补丁

八、我出现这个错误,仅仅因为网站里面DAL的dll文件失效,业务层实例化不了IDAL里面的对象

但也浪费了一下午的时间在调代码上

九、为每个可疑的地方添加监视,起初以为是sql语句写错了,查了几遍,换用sql语句还是报同样的错误。根据google出来的结果,提到对象重定义会引起这样的结果。根据这一提示,替换掉页面级全局对象,总算搞定了。

class DBOper{
            /*构造函数没有函数体
             *
             *c#写的 一系列对数据库操作方法
             *
             *
       }
       最初为了省事,尽量少声明对象,只在全局声明了一个private DBOper db=new DBOper(),在不同方法里面调用该对象的方法,以避免为其定义而造成内存浪费。后来代码重构,在编译的时候并未报错。但是当运行的时候,就出现” NullReferenceException: 未将对象引用设置到对象的实例“。结果就因它而搞了几个小时。后来根据google的结果,将不同方法中使用到的DBOper对象一一重定义为局部变量(一个方法里面只定义一个DBOper对象,多次调用其方法均正常),去掉全局的private变量。再运行的时候就正常了。
       至于为什么将自定义的对象提成为class为private在不同的方法里面使用后而出现这样的问题,现在还不是很清楚.........................

时间: 2024-12-26 21:15:03

c#:未将对象引用设置到对象的实例--可能出现的问题总结(转)的相关文章

未将对象引用设置到对象的实例--可能出现的问题总结

一.网络上的一般说法 1.ViewState 对象为Null.2.DateSet 空.3.sql语句或Datebase的原因导致DataReader空.4.声明字符串变量时未赋空值就应用变量.5.未用new初始化对象.6.Session对象为空.7.对控件赋文本值时,值不存在.8.使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值.9.使用FindControl时,控件不存在却没有做预处理.10.反复定义造成未将对象引用设置到对象的实例错误. 二. (1

HttpContext.Current.Session[strName]未将对象引用设置到对象的实例

项目开发是在4.5.1上,不知道为啥客户提供的服务器上安装的是4.5,差别不大也没去升级,然后部署MVC的时候web.config报错 <system.web> <compilation debug="true" targetFramework="4.5.1"/> <httpRuntime targetFramework="4.5.1"/> </system.web> 然后也没在意就把这段给删掉了,

空引用,未将对象引用设置到对象的实例

作为小白的我,目前没有写过惊天地泣鬼神的代码,每天都是从数据库,到模型,再到页面,再到数据库. 整个过程变量,对象,传递来来回回. 那么问题来了,当我满怀期待的按下F5(在Visual Studio),程序抛了一个“未将对象引用设置到对象的实例”的异常给我,顿时满脑子的想法就是 what are you 弄啥咧?? 一定不是我代码的问题.一定不是. 但是现实总是残忍的,还是面对现实吧,情况只有两种: 1  声明的变量没有正确赋值. 2  数据库中存在异常数据,导致当代码中没有进行 NULL 值判

Spring.Net 未将对象引用设置到对象的实例

"/"应用程序中的服务器错误. 未将对象引用设置到对象的实例. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例. 源错误: 行 16: public ActionResult Index() 行 17: { 行 18: Model.Config config = ConfigService.GetC

session未将对象引用设置到对象的实例

使用Session的方法应该说很简单,在一个页面赋值,另一个页面调用就可以了. 自己在编制程序时犯了一个大错误,即语句的顺序搞倒了,如: Session["UserName"] = nameBox.Text;    Response.Redirect("shuru.aspx"); 先赋值再转页,而我刚开始是反过来写了,那 么Session["UserName"] 的值始终为空了. 查了好多资料,终于把问题给解决了~~~吼吼...拿来跟大家分享^_

集合类操作:未将对象引用设置到对象的实例

以List为例,具体错误信息如下: 未处理 System.NullReferenceException Message=未将对象引用设置到对象的实例. Source=TestSet StackTrace: 在 TestSet.Form1.button1_Click(Object sender, EventArgs e) 位置 E:\WorkSpace\VS2010\TestSet\TestSet\Form1.cs:行号 34 在 System.Windows.Forms.Control.OnCl

解决使用DevExpress开发错误:未将对象引用设置到对象的实例

在使用DevExpress是总是会出现一些状况.这次同事在他的机器上调试完成的代码发过来,却出现"未将对象引用设置到对象的实例"的错误,提示是Resources.resx的问题.另一个提示是LC.exe错误. LC.exe的问题好办,删除文件licenses.licx就可以. 另外一个未设置对象的问题就不好办了,尝试过又一次安装DevExpress,可是错误还是一样的.后来尝试改动Resources.resx这个文件,问题得到解决,详细就是将文件里"Version=4.0.0

IIS报错 未将对象引用设置到对象的实例。

在vs中运行正常的项目 ,发布到IIS总是提示 未将对象引用设置到对象的实例. 运行静态页面 html正常,只是打开.aspx页面的时候报错,在确保了数据库,配置,权限均正常的情况下. 错误原因:先安装的vs,后安装iis就会出现这样的错误. ------------------------------------------------------------------------------------------------------ 解决方法: IIS 注册 ASP.NET 2.0

ashx文件中使用session提示“未将对象引用设置到对象的实例”

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Data;using System.Web.SessionState;namespace friends {    /// <summary>    /// Handler 的摘要说明    /// </summary>    public class Handler : IHttpHandler