指定的轉換無效。


這是一個很常見的問題,但是我這次卻弄了很久。將所遇到的問題寫下來,給各位朋友參考參考。

報錯的形式像這樣,其實上面已經說的很清楚了,指定的轉換無效。就是說你從原類型強制轉換成其它類型的時候無效,發生了錯誤。原因可能有一下兩點:

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