日期:2014-05-18  浏览次数:20452 次

类型转换问题
昨天做项目,发生莫名错误。找了一天都没找到。
今天早上才发现是类型转换错误。本来传个int类型参数据,
Convert.ToInt32(Request.QueryString["ID"])这样写一直不行。
后来改成Int32.Parse(Request.QueryString["ID"])就可以了。百思不得其解,
求解惑~

------解决方案--------------------
int32.Parse:将数字的字符串表示形式转换为它的等效 32 位有符号整数。

Convert.toInt32 :将指定的值转换为 32 位有符号整数。

还是有很大的区别的,后者转换不当时会引发异常

前者是专门处理字符串解析的,后者能处理多重值类型以及object引用类型

------解决方案--------------------
是不是传值的时候有错哦....传空值之类的..呵呵...
转换前最好判断一下NULL
------解决方案--------------------
字符串用Int32.Parse
类型不确定用Convert
------解决方案--------------------
学习!
------解决方案--------------------
Convert.ToInt32(Request.QueryString["ID"])怎么不行?
估计是你传参时ID不是数字吧当然报错.
int32.Parse如果不是数字也一样出错.
------解决方案--------------------
注意,你的Request.QueryString["ID"],有时可能出现空值

最好写成
try
{
int id=Convert.toInt32(Request.QueryString["ID"]);
}
catch(Exception ex)
{
...........
}
------解决方案--------------------
頂,樓上正解.
------解决方案--------------------
学习一下 up
------解决方案--------------------
Convert.toInt32的时候如果格式不正确就会有异常,最好捕获以下,然后做一些处理就行了