2012-04-16 47 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