假如我现在已经得到一个dataset了,我想写一个函数,获取该dataset中num1到num2这之间的记录public dataset getsth(dataset ds,int startindex,int endindex)
{}
效果如下:
已知的ds记录:
index     数据
  0        AA 
  1        B
  2        C
  3        D
  4        E
  5        F执行函数getsth(ds,3,5)以后
得到另一个数据集ds1
ds1的数据如下
index   数据
  0      D
  1      E
  2      F

解决方案 »

  1.   


    DataTable dt = new DataTable();
                dt.Columns.Add("index", typeof(int));
                dt.Columns.Add("value", typeof(string));
                for (int i = 0; i < 6; i++)
                {
                    DataRow dr = dt.NewRow();
                    dr[0] = i;
                    dr[1] = "A" + i;
                    dt.Rows.Add(dr);
                }            DataRow [] drs = dt.Select("index>=3 and index<=5");
                DataTable dt2 = dt.Clone();
                foreach(DataRow dr in drs)
                {
                    dt2.ImportRow(dr);
                }
                 //dt2就是你想要的了.
      

  2.   


    public ataTable GetTable(DataTable dt, int startindex, int endindex)
            {
                DataRow[] drs = dt.Select(string.Format("index>={0} and index<={1}",startindex,endindex));
                DataTable dt2 = dt.Clone();
                foreach (DataRow dr in drs)
                {
                    dt2.ImportRow(dr);
                }
                return dt2;
            }
      

  3.   

    /// <summary>
            /// 在数据信息中进行二次筛选
            /// </summary>
            /// <param name="dt">已查询出来的数据信息</param>
            /// <param name="strWhere">再次筛选条件</param>
            /// <returns>数据信息</returns>
            public static DataTable DataFiltrate(DataTable dt,string strWhere)
            {
                DataRow[] drs = dt.Select(strWhere);
                DataTable dts =new DataTable();
                dts= dt.Clone();
                foreach (DataRow dr in drs)
                {
                    dts.ImportRow(dr);
                }
                return dts;
            }
      

  4.   

    3楼可以,补充下,如果需要排序的话,可以使用table.Select(expression, sortOrder)expression格式就是上面的格式,
    sortOrder格式为:字段名 DESC(降序) 或 字段名 ASC(升序)
      

  5.   

    ds.tables(0).select(条件) 
    ..
      

  6.   

     DataSet ds = new DataSet();
      ds.Tables[0].Rows[i][j].ToString