未將物件引用設定到物件的例項--可能出現的問題總結
分類: asp.net
2010-07-30 20:07
16375人閱讀收藏
舉報一、網路上的一般說法
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();
四、一般出現nullreferenceexception異常的我個人總結有以下情況:
1、物件所在的命名空間沒有引用
2、物件沒有例項化
3、出現異常,例項化失敗物件為 null
五、iis 扛不住的時候,也會出現上面的錯誤。
當應用程式的使用者訪問量超過它能承受的範圍之後,就會出錯。
改善你的程式,使用快取,儘量減少與資料庫互動的次數。
六、七、
當你發現所有的方法不行時,打上.netframework的補丁
八、我出現這個錯誤,僅僅因為**裡面dal的dll檔案失效,業務層例項化不了idal裡面的物件
但也浪費了一下午的時間在調**上
九、為每個可疑的地方新增監視,起初以為是sql語句寫錯了,查了幾遍,換用sql語句還是報同樣的錯誤。根據google出來的結果,提到物件重定義會引起這樣的結果。根據這一提示,替換掉頁面級全域性物件,總算搞定了。
class dboper
最初為了省事,盡量少宣告物件,只在全域性宣告了乙個private dboper db=new dboper(),在不同方法裡面呼叫該物件的方法,以避免為其定義而造成記憶體浪費。後來**重構,在編譯的時候並未報錯。但是當執行的時候,就出現」 nullreferenceexception: 未將物件引用設定到物件的例項「。結果就因它而搞了幾個小時。後來根據google的結果,將不同方法中使用到的dboper物件一一重定義為區域性變數(乙個方法裡面只定義乙個dboper物件,多次呼叫其方法均正常),去掉全域性的private變數。再執行的時候就正常了。
至於為什麼將自定義的物件提成為class為private在不同的方法裡面使用後而出現這樣的問題,現在還不是很清楚.........................
未將物件引用設定到物件的例項
今天又遇到了未處理nullreferenceexception未將物件引用設定到物件的例項的錯誤.在google上搜了一下,有以下原因可造成該錯誤的發生.1 viewstate 物件為null。2 dateset 空。3 sql語句或datebase的原因導致datareader空。4 宣告字串變數...
未將物件引用設定到物件的例項
一 網路上的一般說法 1 viewstate 物件為null。2 dateset 空。3 sql語句或datebase的原因導致datareader空。4 宣告字串變數時未賦空值就應用變數。5 未用new初始化物件。6 session物件為空。7 對控制項賦文字值時,值不存在。8 使用request...
未將物件引用設定到物件的例項
物件引用沒有設定到物件例項的原因很多 1 如下 public intrevise refint numline,refint numcircle,refint numtext,system.io.streamwriter str w,list string record,extextend,line...