C#未將對象引用設置到對象的實例

C#未將對象引用設置到對象的實例

 1221人閱讀 評論(0) 收藏 舉報

解決辦法

出現“未將對象引用設置到對象的實例” 錯誤,一般是下面的原因:

1、ViewState 對象爲Null。

2、DateSet 爲空。

3、sql語句或Datebase的原因導致DataReader空。

4、聲明字符串變量時未賦空值就應用變量。

5、未用new初始化對象。

6、Session對象爲空。

7、對控件賦文本值時,值不存在

8、使用Request.QueryString()時,所獲取的對象不存在,或在值爲空時未賦初始值

9、使用FindControl時,控件不存在卻沒有做預處理

10、重複定義造成未將對象引用設置到對象的實例錯誤

很多時候在運行程序時,會出現“未將對象引用設置到對象的實例”這樣的提示信息,主要是在代碼中重複定義了造成的,只要將其中一個刪除就可以了。

第一種:重複定義造成未將對象引用設置到對象的實例錯誤

一般在C#中造成“未將對象引用設置到對象的實例”錯誤都是控件名稱與codebehind裏面的沒有對應,對於初學編程的人,而在編碼中重複定義也會造成這種問題的產生。

以下是一個例子:

public string[] c;

private void Page_Load(object sender, System.EventArgs e)

{ aaa();

bbb();

}

private void aaa()

{

string[] c=new string[3];

//c=new string[3];

c[0]="我們";

c[1]="西部";

c[2]="學習";

}

private void bbb()

{

Response.Write(c[0]+c[1]+c[2]);

}

運行後會我們發現,會有以下錯誤產生:

異常詳細信息: System.NullReferenceException: 未將對象引用設置到對象的實例。

源錯誤:

行 33: private void bbb()

行 34: {

行 35: Response.Write(c[0]+c[1]+c[2]);

行 36: }

行 37:

很多初學者都會有疑問:我已經定義了變量 public string[] c,而且也進行了實例化 string[] c=new string[3],但是爲什麼在調用數組c的時候還會報“未將對象引用設置到對象的實例”的錯誤呢?

問題出在string[] c=new string[3]這裏,在前面已經將數組c定義後,在函數aaa()中再次將數組定義,造成前面定義的數組不能實例化。只需要將 string[] c=new string[3]修改成 c=new string[3] 即可。

第二種:空對象引用導致錯誤

1。控件不存在。

2。執行權限不夠。加ASPNET和EVETRYONE所有權限。

1、ViewState 對象爲Unll。

2、DateSet 空。

3、sql語句或Datebase的原因導致DataReader空。

4、聲明字符串變量時未賦空值就應用變量。

5、未用new初始化對象。

6、Session對象爲空。

發佈了16 篇原創文章 · 獲贊 10 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章