oleta.rows.count得到4;程序应该每次循环4次,但为何第一个循环4次,第二个循环为4+2,第三次循环为6+2.以此类推呢?
求高手指教。
 private void btn1_Click(object sender, EventArgs e)
{    
 private static OleDbConnection oleconn = new OleDbConnection(ConfigurationManager.ConnectionStrings["connstr"].ConnectionString.ToString());
 OleDbDataAdapter olda = new OleDbDataAdapter("select id from number where geshu=1", oleconn);
        DataTable oleta = new DataTable();
        olda.Fill(oleta);
           int mst = 2;       
           int  i = oleta.rows.count;
           for(int k=0;k<i;)
           {
               if (i >= 2)
               {
                   for (int t = 0; t < mst; t++)
                   {
                       MessageBox.Show("i="+i.ToString()+"  k="+(k+1).ToString());
                       k++;
                       if (k >= i)
                       {
                           break;
                       }
                   }
               }
           }
       }
oleta.rows.count得到4;程序应该每次循环4次,但为何第一个循环4次,第二个循环为4+2,第三次循环为6+2.以此类推呢?
求高手指教。

解决方案 »

  1.   

    int mst = 2;
                int i = 4;
                for (int k = 0; k < i; )
                {
                    if (i >= 2)
                    {
                        for (int t = 0; t < mst; t++)
                        {
                            MessageBox.Show("i= " + i.ToString() + "     k= " + (k + 1).ToString());
                            k++;
                            if (k >= i)
                            {
                                break;
                            }
                        }
                    }
                } 
      

  2.   

    oleta.rows.count 请注意 这个值是不是在发生改变 在第二次的时候是否变为6了,你可以断点调试一下
    int     i   =   oleta.rows.count; 当然你可以直接改成int     i=4;然后在循环,然后得到的结果就是:
    大循环共循环了2次 分别为k=0 k=2
    小循环也变循环了4次 弹出四次提示
      

  3.   

    按推论得到的应该都是:
    i=4 k=1
    i=4 k=2
    i=4 k=3
    i=4 k=4
    但第二次点击的时候却得到:
    i=6 k=1
    i=6 k=2
    i=6 k=3
    i=6 k=4
    i=6 k=5
    i=6 k=6
      

  4.   

    是的,oleta.rows.count 在变,为何会变?
      

  5.   

    i 是唯一被赋值的,,,
      private   void   btn1_Click(object   sender,   EventArgs   e) 
    {         
      private   static   OleDbConnection   oleconn   =   new   OleDbConnection(ConfigurationManager.ConnectionStrings[ "connstr "].ConnectionString.ToString()); 
    }
    不报错这句话
      

  6.   

    应该是count的问题吧,回去查下资料先
      

  7.   

    新手,想问一下三楼,为什么不把k++;放在第一个for循环里??、