指定的转换无效。


这是一个很常见的问题,但是我这次却弄了很久。将所遇到的问题写下来,给各位朋友参考参考。

报错的形式像这样,其实上面已经说的很清楚了,指定的转换无效。就是说你从原类型强制转换成其它类型的时候无效,发生了错误。原因可能有一下两点:

1、数字太大或太小,转换失败。

2、原类型无法被识别,转换错误。例如当你把object类型的数据强制转换为int类型的时候,你就要注意了。一般来说object类型有很多种,当object代表一个对象时,这种强制转换就很可能出现问题。这次是莫名其妙的object的值为77,然后单机值的时候成了"77M",真够郁闷的,还希望大侠们能够告诉我这是为什么。

object o=this.dlnew.DataKeys[e.Item.ItemIndex];//这是在datalist中ItemDataBound事件中取值的代码

然后int num=(int)o;//这里出现了如上所诉的问题。

然后 int num1=int.parse(o.ToString());

int  num2=convert.toint32(o);

后面两种均没有问题,另外第一种取值如果是在sqlserver中是没有问题的。我怀疑是不是在number类型转换成int类型的时候会自动在后面加上M。

最后建议和我一样的菜鸟以后最好是不要用强制转换。会很苦逼的,呵呵~

请各位大侠指教!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM