zoukankan      html  css  js  c++  java
  • 未将对象引用设置到对象的实例--可能出现的问题总结

    一、网络上的一般说法

    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 操作 可是程序常常在这个地方报错,可是有时候重新启动server或者重新启动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在不同的方法里面使用后而出现这种问题,如今还不是非常清楚.........................

  • 相关阅读:
    bzoj1529: [POI2005]ska Piggy banks
    BZOJ 3065 带插入区间K小值
    【BZOJ做题记录】07.07~?
    【BZOJ2882】【字符串的最小表示】工艺
    【不能继续浪啦】BZ做题记录[7.01~7.06]
    第一次到zhzx到今天已经一周年了
    BestCoder Round #45
    BestCoder Round #41 记。
    BZOJ做题记录[0512~?]
    [BZOJ2809&1455&1367]解题报告|可并堆
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4297062.html
Copyright © 2011-2022 走看看