未將物件引用設定到物件的例項 可能出現的問題總結

2022-04-01 21:19:33 字數 1671 閱讀 3619

一、網路上的一般說法

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的補丁

八、九、

為每個可疑的地方新增監視,起初以為是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...