如何统计 第1~4列 空白单元格的序号,从第23行倒数 至 所在列的最后一个0的空格数答案应该是,在第24行依次填入:11、14、0、23求算法!谢谢

解决方案 »

  1.   

    提供一个思路吧,SQL可以搞定
    select max(id) from table1 where c1= 0;
    select max(id) from table1 where c2= 0;
    select max(id) from table1 where c3= 0;
    select max(id) from table1 where c4= 0;
    然后用行数减去上面的值就是你需要的了
      

  2.   

    DataTable dt=GetYourTable();//假设dt是你的表
    int[] result=new int[4];
    for(int i=0;i<dt.columns.count;i++)
    {
      int num=dt.rows.count;
      for(int j=dt.rows.count-1;j>=0;j--)
      {
         if(dt.rows[j][i]==0)
         {
            num=j;
            break;
         }
      }
      result[i]=num;
    }//result数组中就是结果了,大致是这样
      

  3.   

    private void sumerize()
            {
                int currentblankserial = 0;            if (Convert.ToInt32(flex[23, 3]) == 0)
                    {
                        currentblankserial = 0;
                    }                
                
                for (int r = 22; r < flex.Rows.Count - 1; r--)
                {
                    
                    
                }
                
                flex.SetData(24, 1, currentblankserial);
                
               
            }这样写,对吗?
      

  4.   

    计算:
    第1列 从第23行倒数 直到出现0,空格的数量(结果是11)
    第2列 从第23行倒数 直到出现0,空格的数量(结果是14)
    第3列 从第23行倒数 直到出现0,空格的数量(结果是0)
    第4列 从第23行倒数 直到出现0,空格的数量(结果是23)
     private void sumerize()
            {
                int currentblankserial = 0;            if (Convert.ToInt32(flex[23, 3]) == 0)
                    {
                        currentblankserial = 0;
                    }                
                
                for (int r = 22; r < flex.Rows.Count - 1; r--)
                {
                    int[] blankcount = {(int)flex[r,1]};
                    foreach (int cellvalue in blankcount)
                    {
                        if (cellvalue != null)
                        {
                            break;
                        }
                        else
                            currentblankserial++;
                    }
                }            
                flex.SetData(24, 1, currentblankserial);
            }
    这样写统计,似乎没有效果,哪里错了呢?