ITPub博客

首页 > Linux操作系统 > Linux操作系统 > datatable的RowFilter

datatable的RowFilter

原创 Linux操作系统 作者:Flourish2004 时间:2011-09-20 11:11:43 0 删除 编辑

进行移动并返回新的DataTable
         ///
         /// 要移动的DataTable
         /// 要移动的行(索引从1开始)
         /// 要移动的行数
         /// 是否上移(true为上移false为下移)       
         /// 将移动完成后的DataTable返回,如果移动有误的话将返回原Table
         public DataTable GetNewTable(DataTable dt, int StartRow, int MoveCount, bool MoveUp)
         {
             #region 将DataTable按起始位置和移动及移动方向进行移动并返回新的DataTable
            
             DataRow dr = dt.NewRow();
             dr.ItemArray = dt.Rows[StartRow - 1].ItemArray;
             int RowCount = dt.Rows.Count;
             if (StartRow > RowCount)//移动的行在行数外面
                 return dt;
             if (MoveUp)//上移
             {
                 if(StartRow - MoveCount <= 0){ }
                 else
                 {
                     for (int i = 0; i < MoveCount; i++)
                     dt.Rows[StartRow - i - 1].ItemArray = dt.Rows[StartRow - i - 2].ItemArray;
                     dt.Rows[StartRow - MoveCount - 1].ItemArray = dr.ItemArray;
                 }                
             }
             else//下移
             {
                 if(StartRow + MoveCount > RowCount){ }
                 else
                 {
                     for (int i = 0; i < MoveCount; i++)
                     dt.Rows[StartRow + i - 1].ItemArray = dt.Rows[StartRow + i].ItemArray;
                     dt.Rows[StartRow + MoveCount - 1].ItemArray = dr.ItemArray;
                 }                
             }
             return dt;
             #endregion
         }

         ///


         /// 根据条件过滤表
         ///

         /// 未过滤之前的表
         /// 过滤条件
         /// 返回过滤后的表
         public DataTable GetNewTable(DataTable dt, string filter)
         {
             #region 根据条件过滤表
             DataTable newTable = dt.Clone();
             DataRow[] drs = dt.Select(filter);
             foreach (DataRow dr in drs)
             {
                 object[] arr = dr.ItemArray;
                 DataRow newrow = newTable.NewRow();
                 for (int i = 0; i < arr.Length; i++)
                     newrow[i] = arr[i];
                 newTable.Rows.Add(newrow);
             }
             return newTable;
             #endregion
         }

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/183242/viewspace-707920/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: sql 性能優化
下一篇: 網頁生命周期
请登录后发表评论 登录
全部评论

注册时间:2009-01-06

  • 博文量
    149
  • 访问量
    194346