请问如果我拿dataset绑定sql数据库,库中数据多少未知,而我有20个设备,当我启动其中N个设备时,让其平均自动分成N页数据,然后每个设备读取对应页的第1行,如何做?多谢各位大虾帮忙,最好能写段代码,加注释最好T_T

解决方案 »

  1.   

    看了几遍,明白了一点楼主的需求!
    有个思路,可给楼主借鉴:
    1、把数据库里的数据,一起抓进Dataset,如ds1;
    2、得到当前启动设备的数量,如n;再用i存放当前设备的序号,是第1个还是第2个等;
    3、“针对于每个设备读取对应页的第1行”,可以通过下面的代码来取:
                //rowCount存放一共有几行
                int rowCount=ds1.Tables[0].Rows.Count;            //rowIndex存放当前设备可读的第1行下标,如读第2行,加1即可
                int rowIndex=(rowCount/n)*(i-1);            //然后此句是取得第i个设备的第1行数据
                ds1.Tables[0].Rows[rowIndex]重点是理解,rowIndex的获取方式,楼主理解了就好办。
      

  2.   

    对于上面的rowIndex,我举个例子:
    假设有50行,开了4个设备,那么,第1个设备取得到第1行便是:(50/4)*(1-1)=0,即第0行,下标从0开始,也就是我们理解的第1行.
    第2个设备取到的第1行便是:(50/4)*(2-1)=15
    第4个设备取到的第1行便是:(50/4)*(4-1)=45这样应该符合楼主的需求
      

  3.   

    楼上的我看明白了        //使用DataSet对象存放数据表
            DataSet myDataSet = new DataSet();
            int startnum = datasize * (Int32.Parse(设备数) - 1);
            myDataAdapter.Fill(myDataSet, startnum, datasize, "information");
            //使用DataGrid显示数据
            DataList1.DataSource = myDataSet.Tables["information"].DefaultView;
            DataList1.DataBind();
      

  4.   

    ydsunny(在路上)
    能否给个完整的代码