2013-05-10 63 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