取消装箱失败要怎么处理,原本的数据是float类型的,为什么这样不可以呢
要怎么改一下?
 DataTable dt = acc.GetSereachData(scn, SqlStr);            Bitmap IMG = new Bitmap(1000,100000);
            System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(IMG);
            System.Drawing.Pen myPen = new System.Drawing.Pen(System.Drawing.Color.Red, 2);
            
            for (int n = 0; n < dt.Rows.Count-2; n++)
            {
                System.Drawing.Point[] po = new System.Drawing.Point[10];
                for (int i = 0; i <= 9; i ++)//设置宽
                {                    
                    po[i] = new System.Drawing.Point((i+1)*100,(int)((Double)(dt.Rows[n][i + 2]))*10);//提示取消装箱失败
                }
                g.DrawLines(myPen, po);
            }
            IMG.Save("d:\\2.jpg");

解决方案 »

  1.   

    (int)((Double)(dt.Rows[n][i + 2]))*10
    改为
    Convert.ToInt32(dt.Rows[n][i + 2]))*10
      

  2.   

    Convert.ToInt32(dt.Rows[n][i + 2])*10
      

  3.   

    没调试,不可以的话,你试试
    (int)(Convert.ToDouble(dt.Rows[n][i + 2])*10)
      

  4.   

    你可以看看类型
    dt.Rows[n][i + 2]的装箱之前,应该不是int,也不是double,估计是Decimal类型。装箱拆箱必须类型精确的一致,这里不是类型转换,要先拆箱。比较好的做法就是我给你的,虽然不高效,但通用。会调用object的ToString方法根据原本类型转换为字符串,然后解析出来。