public void dt(string a,string b)
{
     double jc = 0;
     double fz = 0;
     for (int i = 0; i < dataGridView3.Rows.Count; i++)
     {
          if (dataGridView3.Rows[i].Cells[1].Value.ToString() == "借出")
               jc += Convert.ToDouble(dataGridView3.Rows[i].Cells[4].Value);
          else if (dataGridView3.Rows[i].Cells[1].Value.ToString() == "负债")
               fz += Convert.ToDouble(dataGridView3.Rows[i].Cells[4].Value);
     }
     a = jc.ToString();
     b = fz.ToString();
}
这是我写的代码,意思是这样的:遍历datagridview3的每一列,假如datagridview3中第二列的值为“借出”,则将这列第五列的值累加起来。
代码在调试的时候没有错误,但程序就是运行不了?
请大家帮忙看下问题出在哪里?

解决方案 »

  1.   

    加try catch
    a,b是何作用,传值使用ref,out
      

  2.   

    我把if语句去掉之后让jc全部同列累加程序能出来,但有if语句运行看不到窗体了,可程序处于运行状态
      

  3.   

    public void dt(out string a,out string b)
      

  4.   

    额,自己弄好了,错误都不像大家所说的那样,错误出在这儿:for (int i = 0; i < dataGridView3.Rows.Count; i++)   应该要是i < dataGridView3.Rows.Count-1,因为当将datagridview显示出来的时候,总会多显示出一行空白,所以要减1.
      

  5.   

    哈哈,我用的是foreach所以没发现这个问题