未将对象引用设置到对象的实例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了未将对象引用设置到对象的实例相关的知识,希望对你有一定的参考价值。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
堆栈跟踪:
[NullReferenceException: 未将对象引用设置到对象的实例。]
WebRegister.login.preLogin.btnAction()
WebRegister.login.preLogin.Button1_Click(Object sender, EventArgs e)
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1330
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.2407; ASP.NET 版本:1.1.4322.2407
不懂,是否讲清楚一点,是什么原因?怎样解决?谢谢!
原因:电脑相关的服务没有启动造成的。
1、首先点击打开电脑桌面左下角开始菜单栏中的“运行”选项。
2、然后在出现的运行界面中,点击输入框,键入命令“services.msc”,按下enter键。
3、然后在出现的服务界面中,找到Security Cente这个服务。
4、找到这个服务之后,双击打开它,点击“启动类型”,选择“自动”设置选项,选择应用。
5、然后选择启动该服务,启动完成后,点击“确定”选项,这样就可以解决问题了,
参考技术A 从代码和网页的后缀名*.aspx.cs看就知道阁下和我一样,同样是用的.net开发工具,首先说明出错的原因是你有一个对象没有实例化,也就是没有使用关键字new一下(例如:TexBox TB1 = new TexBox(),再如:DataSet Ds1 = new DataSet()),如果你都new了,那么也有可能是你所new的对象不存在了,或者是在程序中不可用。给阁下一个找到出错原因的方法:一、你如果是在编写程序过程中测试这个index.aspx页面时出现上述错误,那么你可以如下解决:
1、用VS.NET2003或VS.NET2005(主要看这个程序工程,你原来用的是哪一个开发环境了)打开此程序工程。
2、如果点击运行没有错误,及编译后没有产生语法错误,那么就要找到是在哪个功能的哪条语句中出现了上述错误。可在能执行的地方设置断点,逐句运行程序看到哪条语句后不能执行而提示了错误。
3、如果你已经new过了对象,那么你看看你new过的对象是否已经失效,也就是看看定义的对象的作用范围是否合法。
4、并且可以使用右键的快速监测来查看对象。
5、如果你是调用了Web Services(及Web服务)那么看看你实例化的Web Services是否存在,并且你是否实例化了Web Services以及是否在程序工程中添加了Web引用,其中的不对称加密解密过程是否正确,是否执行了应该执行的程序代码。
二、如果你是没有源程序而只是访问了某个网站,那么我只能告诉你,这个错误提示是程序错误,编译过程只能监测语法,而不能监测语意,所以你不能解决,可以告诉你所访问的网站,让他们解决出现的此类问题。
最后祝你编程或网上遨游愉快!万事如意,心想事成本回答被提问者采纳 参考技术B 回答
关于“未将对象引用设置到对象的实例”这个错误的解决步骤如下:1、首先,所设置的变量为空值或没有取到值,一般出现在传递参数的时候出现这个问题,也会在使用DataGrid或gridview或datalist等数据控件时出现。2、设置控件名称与codebehind里面的没有对应。3、设置未用new初始化对象或者在程序中所引用的控件不存在。4、然后使用try..catch...finally捕捉错误,或直接用response.write()输出所取的变量值。5、查看代码中是否存在未初始化的变量,即可解决未将对象引用设置到对象的实例”的问题。
参考技术C 那句话报错不一定错的地方就在那边楼主应该是在做Windows窗体应该程序吧
Web应用程序没有dataGridView这个控件
我刚用楼主的代码调试下没有发现错误
楼主要找出错误首先要明白未将对象引用设置到对象的实例这句话什么意思
new
SqlConnection(Con)
,new
SqlDataAdapter(sql,connection),new
DataSet()这些就叫对象的实例
而SqlConnection
connection中的connection,SqlDataAdapter
adapter中的adapter,DataSet
set
中的set这些就叫对象引用
整句话未将对象引用设置到对象的实例的意思就是说对象的实例赋值给对象引用时为空相当于对象引用的默认值
本来我们声明一个对象引用的时候默认值就是null(空)
比如我们声明一个DataSet
set;
你如果不给它=new
DataSet()直接就这样DataSet
set;
它就默认set为null(空)
说白了
这句话就是说你的new
Sqlconnection(Con)或者
new
SqlDataAdapter(sql,connection)这两个对象的实例根本不存在为空
对象引用好像从来就没用引用你这个对象实例还是我的默认值空(它说设置到有点抽象因为翻译高手说话都很抽象)
所以楼主自己看看数据库中表的问题就解决了
代码没有问题只是你new
Sqlconnection(Con)或者
new
SqlDataAdapter(sql,connection)这两个对象的实例为空
说明Con这语句中的数据库名称可能错
或者sql语句中的people表名不存在 参考技术D 出现了"未将对象引用设置到对象的实例"是因为你用一个空引用(没有指向任何对象)调用了其中的方法或者是属性.
在这里无疑是Session["论文名称"]的问题了,你可以去单步跟踪到这句话,看看Session["论文名称"]的值是否为空,我没猜错的话应该是空值.这样一来你就要在前面给Session["论文名称"]赋值了
以上是关于未将对象引用设置到对象的实例的主要内容,如果未能解决你的问题,请参考以下文章