类型转换问题
昨天做项目,发生莫名错误。找了一天都没找到。
今天早上才发现是类型转换错误。本来传个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的时候如果格式不正确就会有异常,最好捕获以下,然后做一些处理就行了