2012-04-16 61 views
0

我的VS2005網絡應用程序在過去兩年中運行良好。但今天它突然開始拋出Invalid Cast的異常。例外:2年後無效投射

我的代碼是:

int DistID = (int) this.Session["DISTRIBUTOR_ID"]; 

這行兩年多來工作的罰款。

但現在它突然開始拋出無效投射異常。我在調試模式下檢查

this.Session["DISTRIBUTOR_ID"] 

有1234

有效的int值,我改變我的代碼來解決了這個問題:

int DistID = Convert.ToInt32(this.Session["DISTRIBUTOR_ID"]); 

但我的老闆問我,爲什麼這個錯誤發生的所有突然間。

任何人都可以回答這個問題嗎?

+0

任何特定語言? – 2012-04-16 06:53:21

+1

@Ignacio這看起來很像C#。 – 2012-04-16 07:08:36

+0

@Etienne:我能說什麼,標籤扔給我。特別是那個毫無價值的「無效」標籤。 – 2012-04-16 07:15:41

回答

4

Convert.ToInt32()函數在內部調用解析函數,但是使用裝箱和拆箱的第一個實現。 會話中的值在分配時應爲整數類型。

+0

感謝HusseinX爲您的快速解答。現在我得到確切的位置,我做錯了。幾天前我改變了我的代碼。 this.Session.Add(「DISTRIBUTOR_ID」,Convert.ToInt32(dt.Rows [0] [「DISTRIBUTOR_ID」]); this.Session.Add(「DISTRIBUTOR_ID」,dt.Rows [0] [「DISTRIBUTOR_ID」]。 ToString());這導致異常。再次感謝您。 – 2012-04-16 07:21:45

+0

歡迎我的朋友 – 2012-04-16 07:23:07