2013-05-10 48 views
0

我想從我的數據庫中獲取短變量值,並且需要將其轉換,但它在調試時給出了鑄造錯誤,我該如何解決這個問題?你能幫我嗎?C中的短鑄造錯誤#

obj_OBJimagegallery.watermark =String.IsNullOrEmpty((dr["watermark"]).ToString()) ? null : (short?)(dr["watermark"]);  
+0

解決我的問題? – 2013-05-10 07:59:09

+0

InvalidCastException錯誤 – calypso 2013-05-10 08:02:18

回答

0

我一直在使用這樣的你有哪些錯誤的轉換

 (short?)(Convert.ToInt16(dr["watermark"]) 
0

嘗試使用方法,而不是投

Int16.TryParse Method (String, Int16%) 

有使用

short result; 

if(Int16.TryParse Method ((dr["watermark"].ToString(), out result) == false) 
{ 
//fail 
} 

obj_OBJimagegallery.watermark = result;// <- you have there parsed value 
+0

如何在代碼中使用它? – calypso 2013-05-10 08:07:01

+0

它沒有提供任何錯誤,但無法正常工作 – calypso 2013-05-10 08:33:14

+0

請參閱debuger dr [「watermark」]中的內容並將其放在那裏 – Jacek 2013-05-10 08:40:14

0

試試這個。

short? s = String.IsNullOrEmpty((dr["watermark"]).ToString()) ? null : (short?)short.Parse(dr["watermark"].ToString()); 
+0

它不起作用 – calypso 2013-05-10 08:14:18