C#的强制转换不是你这样写的吧?
举一个datarow的例子给你
float.Parse(dr["contractTotal"].ToString());

解决方案 »

  1.   

    直接用Convert转换吧,具体转换你可以下msdn就知道了
      

  2.   

    补充:
    语句中,dr的意思是datarow,自己命名的
      

  3.   

    if (prjRow["ContractTotal"]!=DBNull.Value)
    {
        //转换
    }
      

  4.   

    用 (double)prjRow["ContractTotal"]
    或  Convert.ToDouble(prjRow["ContractTotal"])
      

  5.   

    需要判断非空,如果为空,需要给默认值。
    .net 中,如果值是 null 或者 DbNull的情况下,转换会出现问题。
    我的做法是编写一个函数来处理。
    比如,获取 dataset 中表行列值:
    public static object GetDataSetColumnValue(DataSet ds, int RowIndex, int ColumnIndex, char Type)
    {
    object Value = ds.Tables[0].Rows[RowIndex][ColumnIndex];
    switch(Type)
    {
    case 's':
    case 'S':
    if (Value == System.DBNull.Value)
    Value = null;
    break;
    case 'n':
    case 'N':
    if (Value == System.DBNull.Value)
    Value = 0;
    break;
    default:
    break;
    }
    return Value;
    }
      

  6.   

    最好用Convert.ToSingle(prjRow["ContractTotal"]);