DataTable OrderProductTable = OrderProduct.QueryOrderProduct(Convert.ToString(Session["OrderNumber"]));
            int total = null;
            for (int i = 0; i < OrderProductTable.Rows.Count; i++)
            {                
                OrderProductTable.Rows[i][9];
                total = ? ;
            }

解决方案 »

  1.   

    你是想表达:
    total+=int.Parse(OrderProductTable.Rows[i][9].ToString());
    么?
                    
      

  2.   

    这是什么?NHibernate?可以用原生SQL的COUNT语句。
      

  3.   

    DataTable OrderProductTable = OrderProduct.QueryOrderProduct(Convert.ToString(Session["OrderNumber"]));
                int total = 0;
                for (int i = 0; i < OrderProductTable.Rows.Count; i++)
                {                
                    total += Convert.ToInt32(OrderProductTable.Rows[i][9]);
                }
      

  4.   

     total ==null,没给 total 赋值呀
      

  5.   

    这种情况可以在视图里写啊。 group by OrderNumber按订单分组,统计出要求字段的总和,后台随便取一行就的结果就行了
      

  6.   

    首先int total=0;
    然后在for里面+=convert.toint32();
      

  7.   

    首先 你应该先声明int total=0 而不是int total = null;
    然后
    for (int i = 0; i < OrderProductTable.Rows.Count; i++)
                {                
                    OrderProductTable.Rows[i][9];
                    total =total +Convert.Toint32(OrderProductTable.Rows[i][9]);
                }如果不是这一列所有数据的和,,,那就不知道你想要什么和的数据了
      

  8.   

    哈哈,不好意思忘记说问题的核心了问题核心是Convert.ToInt32(OrderProductTable.Rows[i][9]);这里无法转换类型,报错输入字符串的格式不正确。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 输入字符串的格式不正确。
      

  9.   

    int类型不能直接赋null值,初始赋值0,然后累加
      

  10.   

    OrderProductTable.Rows[i][9]是什么类型?
    Convert.ToInt32(OrderProductTable.Rows[i][9].Tostring().Trim()); 
      

  11.   

    有小数点后两位,用Convert.ToDouble吧
      

  12.   

    数据库的对应列中有没有值?int z=0;
    if(OrderProductTable.Rows[i][9]!=DBNull.Value && OrderProductTable.Rows[i][9]!=null)
      z=Convert.ToInt32(OrderProductTable.Rows[i][9].ToSting()); 
    total+=z;
      

  13.   

    有小数点还说什么int,都声明为double,转换使用ToDouble。