asp.net運(yùn)行提示未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例錯(cuò)誤解決方法
更新時(shí)間:2012年03月30日 22:32:05 作者:
asp.net運(yùn)行提示未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例錯(cuò)誤解決方法,需要的朋友可以參考下
未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例
一、網(wǎng)絡(luò)上的一般說(shuō)法
1、ViewState對(duì)象為Null。
2、DateSet空。
3、sql語(yǔ)句或Datebase的原因?qū)е翫ataReader空。
4、聲明字符串變量時(shí)未賦空值就應(yīng)用變量。
5、未用new初始化對(duì)象。
6、Session對(duì)象為空。
7、對(duì)控件賦文本值時(shí),值不存在。
8、使用Request.QueryString()時(shí),所獲取的對(duì)象不存在,或在值為空時(shí)未賦初始值。
9、使用FindControl時(shí),控件不存在卻沒(méi)有做預(yù)處理。
10、重復(fù)定義造成未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例錯(cuò)誤.
二、
(1)所設(shè)置的變量為空值或沒(méi)有取到值,一般出現(xiàn)在傳遞參數(shù)的時(shí)候出現(xiàn)這個(gè)問(wèn)題,也會(huì)在使用DataGrid或gridview或datalist等數(shù)據(jù)控件時(shí)出現(xiàn).
(2)控件名稱(chēng)與codebehind里面的沒(méi)有對(duì)應(yīng)
(3)未用new初始化對(duì)象
(4)在程序中所引用的控件不存在
解決方法:
(1)使用try..catch...finally捕捉錯(cuò)誤,或直接用response.write()輸出所取的變量值
(2)查看代碼中是否存在未初始化的變量
三、SqlConnection.Open未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例
在使用VS2003開(kāi)發(fā)ASP.NET程序時(shí)候有時(shí)候操作SqlConnection對(duì)象的Open()方法時(shí)候會(huì)出現(xiàn)
未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例。
說(shuō)明:執(zhí)行當(dāng)前Web請(qǐng)求期間,出現(xiàn)未處理的異常。請(qǐng)檢查堆棧跟蹤信息,以了解有關(guān)該錯(cuò)誤以及代碼中導(dǎo)致錯(cuò)誤的出處的詳細(xì)信息。
異常詳細(xì)信息:System.NullReferenceException:未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例。
源錯(cuò)誤:
。。。。
conn.Open();
......
跟蹤調(diào)試也肯定可以確定對(duì)conn進(jìn)行new操作但是程序經(jīng)常在這個(gè)地方報(bào)錯(cuò),但是有時(shí)候重啟服務(wù)器或者重啟IIS有能正常使用了。怎么調(diào)試也找不到問(wèn)題那么這個(gè)時(shí)候可能是你本機(jī)上安裝的.NETFRAMEEWORK框架有問(wèn)題,可能沒(méi)有沒(méi)有安裝SP1.1補(bǔ)丁
需要打NET轉(zhuǎn)載自百分網(wǎng)http://www.oh100.com,請(qǐng)保留此標(biāo)記FRAMEEWORK1.1SP1的補(bǔ)丁,到微軟官方網(wǎng)站下載安裝后就好了。
四、一般出現(xiàn)NullReferenceException異常的我個(gè)人總結(jié)有以下情況:
1、對(duì)象所在的命名空間沒(méi)有引用
2、對(duì)象沒(méi)有實(shí)例化
3、出現(xiàn)異常,實(shí)例化失敗對(duì)象為null
五、IIS扛不住的時(shí)候,也會(huì)出現(xiàn)上面的錯(cuò)誤。
當(dāng)應(yīng)用程序的用戶訪問(wèn)量超過(guò)它能承受的范圍之后,就會(huì)出錯(cuò)。
改善你的程序,使用緩存,盡量減少與數(shù)據(jù)庫(kù)交互的次數(shù)。
六、我碰到的問(wèn)題是,無(wú)意重置了DataSet引用,后出現(xiàn)這個(gè)問(wèn)題,請(qǐng)大家好好查查自己的代碼,是不是在其他地方重新引用了,在我的程序中DataSet被設(shè)置成全局對(duì)象。
七、當(dāng)你發(fā)現(xiàn)所有的方法不行時(shí),打上.netframework的補(bǔ)丁
八、我出現(xiàn)這個(gè)錯(cuò)誤,僅僅因?yàn)榫W(wǎng)站里面DAL的dll文件失效,業(yè)務(wù)層實(shí)例化不了IDAL里面的對(duì)象
但也浪費(fèi)了一下午的時(shí)間在調(diào)代碼上
九、
為每個(gè)可疑的地方添加監(jiān)視,起初以為是sql語(yǔ)句寫(xiě)錯(cuò)了,查了幾遍,換用sql語(yǔ)句還是報(bào)同樣的錯(cuò)誤。根據(jù)google出來(lái)的結(jié)果,提到對(duì)象重定義會(huì)引起這樣的結(jié)果。根據(jù)這一提示,替換掉頁(yè)面級(jí)全局對(duì)象,總算搞定了。
classDBOper{
/*構(gòu)造函數(shù)沒(méi)有函數(shù)體
**c#寫(xiě)的一系列對(duì)數(shù)據(jù)庫(kù)操作方法
**}最初為了省事,盡量少聲明對(duì)象,只在全局聲明了一個(gè)privateDBOperdb=newDBOper(),在不同方法里面調(diào)用該對(duì)象的方法,以避免為其定義而造成內(nèi)存浪費(fèi)。后來(lái)代碼重構(gòu),在編譯的時(shí)候并未報(bào)錯(cuò)。但是當(dāng)運(yùn)行的時(shí)候,就出現(xiàn)"NullReferenceException:未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例"。結(jié)果就因它而搞了幾個(gè)小時(shí)。后來(lái)根據(jù)google的結(jié)果,將不同方法中使用到的DBOper對(duì)象一一重定義為局部變量(一個(gè)方法里面只定義一個(gè)DBOper對(duì)象,多次調(diào)用其方法均正常),去掉全局的private變量。再運(yùn)行的時(shí)候就正常了。
至于為什么將自定義的對(duì)象提成為class為private在不同的方法里面使用后而出現(xiàn)這樣的問(wèn)題,現(xiàn)在還不是很清楚
一、網(wǎng)絡(luò)上的一般說(shuō)法
1、ViewState對(duì)象為Null。
2、DateSet空。
3、sql語(yǔ)句或Datebase的原因?qū)е翫ataReader空。
4、聲明字符串變量時(shí)未賦空值就應(yīng)用變量。
5、未用new初始化對(duì)象。
6、Session對(duì)象為空。
7、對(duì)控件賦文本值時(shí),值不存在。
8、使用Request.QueryString()時(shí),所獲取的對(duì)象不存在,或在值為空時(shí)未賦初始值。
9、使用FindControl時(shí),控件不存在卻沒(méi)有做預(yù)處理。
10、重復(fù)定義造成未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例錯(cuò)誤.
二、
(1)所設(shè)置的變量為空值或沒(méi)有取到值,一般出現(xiàn)在傳遞參數(shù)的時(shí)候出現(xiàn)這個(gè)問(wèn)題,也會(huì)在使用DataGrid或gridview或datalist等數(shù)據(jù)控件時(shí)出現(xiàn).
(2)控件名稱(chēng)與codebehind里面的沒(méi)有對(duì)應(yīng)
(3)未用new初始化對(duì)象
(4)在程序中所引用的控件不存在
解決方法:
(1)使用try..catch...finally捕捉錯(cuò)誤,或直接用response.write()輸出所取的變量值
(2)查看代碼中是否存在未初始化的變量
三、SqlConnection.Open未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例
在使用VS2003開(kāi)發(fā)ASP.NET程序時(shí)候有時(shí)候操作SqlConnection對(duì)象的Open()方法時(shí)候會(huì)出現(xiàn)
未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例。
說(shuō)明:執(zhí)行當(dāng)前Web請(qǐng)求期間,出現(xiàn)未處理的異常。請(qǐng)檢查堆棧跟蹤信息,以了解有關(guān)該錯(cuò)誤以及代碼中導(dǎo)致錯(cuò)誤的出處的詳細(xì)信息。
異常詳細(xì)信息:System.NullReferenceException:未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例。
源錯(cuò)誤:
。。。。
conn.Open();
......
跟蹤調(diào)試也肯定可以確定對(duì)conn進(jìn)行new操作但是程序經(jīng)常在這個(gè)地方報(bào)錯(cuò),但是有時(shí)候重啟服務(wù)器或者重啟IIS有能正常使用了。怎么調(diào)試也找不到問(wèn)題那么這個(gè)時(shí)候可能是你本機(jī)上安裝的.NETFRAMEEWORK框架有問(wèn)題,可能沒(méi)有沒(méi)有安裝SP1.1補(bǔ)丁
需要打NET轉(zhuǎn)載自百分網(wǎng)http://www.oh100.com,請(qǐng)保留此標(biāo)記FRAMEEWORK1.1SP1的補(bǔ)丁,到微軟官方網(wǎng)站下載安裝后就好了。
四、一般出現(xiàn)NullReferenceException異常的我個(gè)人總結(jié)有以下情況:
1、對(duì)象所在的命名空間沒(méi)有引用
2、對(duì)象沒(méi)有實(shí)例化
3、出現(xiàn)異常,實(shí)例化失敗對(duì)象為null
五、IIS扛不住的時(shí)候,也會(huì)出現(xiàn)上面的錯(cuò)誤。
當(dāng)應(yīng)用程序的用戶訪問(wèn)量超過(guò)它能承受的范圍之后,就會(huì)出錯(cuò)。
改善你的程序,使用緩存,盡量減少與數(shù)據(jù)庫(kù)交互的次數(shù)。
六、我碰到的問(wèn)題是,無(wú)意重置了DataSet引用,后出現(xiàn)這個(gè)問(wèn)題,請(qǐng)大家好好查查自己的代碼,是不是在其他地方重新引用了,在我的程序中DataSet被設(shè)置成全局對(duì)象。
七、當(dāng)你發(fā)現(xiàn)所有的方法不行時(shí),打上.netframework的補(bǔ)丁
八、我出現(xiàn)這個(gè)錯(cuò)誤,僅僅因?yàn)榫W(wǎng)站里面DAL的dll文件失效,業(yè)務(wù)層實(shí)例化不了IDAL里面的對(duì)象
但也浪費(fèi)了一下午的時(shí)間在調(diào)代碼上
九、
為每個(gè)可疑的地方添加監(jiān)視,起初以為是sql語(yǔ)句寫(xiě)錯(cuò)了,查了幾遍,換用sql語(yǔ)句還是報(bào)同樣的錯(cuò)誤。根據(jù)google出來(lái)的結(jié)果,提到對(duì)象重定義會(huì)引起這樣的結(jié)果。根據(jù)這一提示,替換掉頁(yè)面級(jí)全局對(duì)象,總算搞定了。
classDBOper{
/*構(gòu)造函數(shù)沒(méi)有函數(shù)體
**c#寫(xiě)的一系列對(duì)數(shù)據(jù)庫(kù)操作方法
**}最初為了省事,盡量少聲明對(duì)象,只在全局聲明了一個(gè)privateDBOperdb=newDBOper(),在不同方法里面調(diào)用該對(duì)象的方法,以避免為其定義而造成內(nèi)存浪費(fèi)。后來(lái)代碼重構(gòu),在編譯的時(shí)候并未報(bào)錯(cuò)。但是當(dāng)運(yùn)行的時(shí)候,就出現(xiàn)"NullReferenceException:未將對(duì)象引用設(shè)置到對(duì)象的實(shí)例"。結(jié)果就因它而搞了幾個(gè)小時(shí)。后來(lái)根據(jù)google的結(jié)果,將不同方法中使用到的DBOper對(duì)象一一重定義為局部變量(一個(gè)方法里面只定義一個(gè)DBOper對(duì)象,多次調(diào)用其方法均正常),去掉全局的private變量。再運(yùn)行的時(shí)候就正常了。
至于為什么將自定義的對(duì)象提成為class為private在不同的方法里面使用后而出現(xiàn)這樣的問(wèn)題,現(xiàn)在還不是很清楚
您可能感興趣的文章:
- 運(yùn)行asp.net時(shí)出現(xiàn) http錯(cuò)誤404-文件或目錄未找到
- IIS部署asp.net報(bào)404錯(cuò)誤的解決方法
- asp.net網(wǎng)站的404錯(cuò)誤頁(yè)面的正確設(shè)置方法
- Asp.Net 程序錯(cuò)誤Runtime Error原因與解決
- asp.net 從客戶端中檢測(cè)到有潛在危險(xiǎn)的 Request.Form 值錯(cuò)誤解
- asp.net 錯(cuò)誤:0x8007000B 異常的解決方法
- 解決ASP.NET中"/"應(yīng)用程序中的服務(wù)器錯(cuò)誤的方法
- ASP.NET在IIS上注冊(cè)報(bào)0x800702e4錯(cuò)誤解決方法
- asp.net iis7默認(rèn)文檔錯(cuò)誤異常的解決方法
- ASP.NET MVC錯(cuò)誤處理的對(duì)應(yīng)解決方法
相關(guān)文章
Gridview使用CheckBox全選與單選采用js實(shí)現(xiàn)同時(shí)高亮顯示選擇行
Gridview使用CheckBox單選與全選功能再次進(jìn)行簡(jiǎn)單演示,選中的行,使用高亮顯示,讓用戶一目了然看到哪一行被選擇了,在項(xiàng)目中很實(shí)用的,開(kāi)發(fā)中的朋友們可要考慮一下哦2013-01-01asp.net顯示自己的網(wǎng)頁(yè)圖標(biāo)的幾種方式
多tab的瀏覽器,你一定會(huì)發(fā)現(xiàn)tab前邊的個(gè)性圖標(biāo),關(guān)于這個(gè)東西有好幾種做法,下面與大家分享下2014-05-05在IIS上部署ASP.NET Core Web API的方法步驟
這篇文章主要介紹了在IIS上部署ASP.NET Core Web API的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08ASP.NET中實(shí)時(shí)圖表的實(shí)現(xiàn)方法分享
這篇文章介紹了ASP.NET中實(shí)時(shí)圖表的實(shí)現(xiàn)方法,有需要的朋友可以參考一下2013-11-11asp.net下降文本格式數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)中的代碼
導(dǎo)入文本格式數(shù)據(jù)到數(shù)據(jù)庫(kù)中的代碼,需要的朋友可以參考下。2010-05-05asp.net ajax實(shí)現(xiàn)無(wú)刷新驗(yàn)證碼
實(shí)現(xiàn)ajax無(wú)刷新驗(yàn)證碼首先需要兩個(gè)aspx頁(yè)面,第一個(gè)用來(lái)展示,另一個(gè)用來(lái)后臺(tái)刷新驗(yàn)證碼2011-10-10.NETCore添加區(qū)域Area代碼實(shí)例解析
這篇文章主要介紹了.NETCore添加區(qū)域Area代碼實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07