【问题标题】:Short Casting Error in C#C# 中的短转换错误
【发布时间】:2013-05-10 07:58:09
【问题描述】:

我正在尝试从我的数据库中获取短变量值并需要对其进行转换,但它在调试时出现转换错误我该如何解决这个问题?你能帮我吗?

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

【问题讨论】:

  • InvalidCastException 错误

标签: c# casting short


【解决方案1】:

试试这个。

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

【讨论】:

    【解决方案2】:

    尝试使用方法,而不是强制转换

    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
    

    【讨论】:

    • 可能 dr["watermark"] 是 bool 类型,您不能将其转换为short! obj_OBJimagegallery.watermark 是什么类型的??
    • 它很短,我认为问题是不同的,它在 db 中很小
    • 尝试使用方法bool.TryParse,var结果必须声明为bool
    • 我回答看底部:)
    【解决方案3】:

    我已经使用这种转换解决了我的问题

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 2011-12-27
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      相关资源
      最近更新 更多