SqlDataAdapter MyAdapter = new SqlDataAdapter();
                MyAdapter.SelectCommand = cmd;
                MyAdapter.Fill(ds, StartIndex, Size, TBname);这个过程中,我们的理解是将表全部读取出来,在分页放到DS里。我想在这个过程中得到MyAdapter.SelectCommand = cmd;这个后的总行数。目前我得到总行数的办法是另执行一个带 count(*)的。感觉性能上很不值呀!
那位高手知道或者反编译过 SqlDataAdapter 知道的告诉下呀!

解决方案 »

  1.   

    行数就是 ds.tables[0].Rows.Count
      

  2.   

    table应该写成
    Table(c#),VB就无所谓
      

  3.   

    表A 有1000行
                 SqlDataAdapter MyAdapter = new SqlDataAdapter(); 
                    MyAdapter.SelectCommand = cmd; 
                    MyAdapter.Fill(ds, 100, 10, TBname); 我是要这个总行数。而不是装载到ds里的10行。所以别在发ds.tables[0].Rows.Count这类的了。我没表达清楚 不好意思呀。
      

  4.   

    那确实不知道Adpater里有什么方法了...不过我觉得就算实现了什么方法性能上也未必比在数据库里好,一般我看到过的分页存储过程都是通过count(*)查总行的....
      

  5.   

    如果你能保证你的索引字段都不会是NULL的话,count一下那个字段会快很多...
      

  6.   


    不是要这样吧:
    select b.*,(select  count(*) from rptlist) from rptlist as b
      

  7.   

      SqlDataAdapter MyAdapter = new SqlDataAdapter(); 
      MyAdapter.SelectCommand = cmd; 
      MyAdapter.Fill(ds); 
      int count=ds.tables[0].Rows.Count;
      MyAdapter.Fill(ds, 100, 10, TBname);