• DataTable 操作


    #region DataTable筛选,排序返回符合条件行组成的新DataTable或直接用DefaultView按条件返回
            /// <summary>
            /// DataTable筛选,排序返回符合条件行组成的新DataTable或直接用DefaultView按条件返回
            /// eg:SortExprDataTable(dt,"Sex='男'","Time Desc",1)
            /// </summary>
            /// <param name="dt">传入的DataTable</param>
            /// <param name="strExpr">筛选条件</param>
            /// <param name="strSort">排序条件</param>
            /// <param name="mode">1,直接用DefaultView按条件返回,效率较高;2,DataTable筛选,排序返回符合条件行组成的新DataTable</param>
            public static DataTable SortDataTable(DataTable dt, string strExpr, string strSort, int mode)
            {
                switch (mode)
                {
                    case 1:
                        //方法一 直接用DefaultView按条件返回
                        dt.DefaultView.RowFilter = strExpr;
                        dt.DefaultView.Sort = strSort;
                        return dt;
                    case 2:
                        //方法二 DataTable筛选,排序返回符合条件行组成的新DataTable
                        DataTable dt1 = new DataTable();
                        DataRow[] GetRows = dt.Select(strExpr, strSort);
                        //复制DataTable dt结构不包含数据
                        dt1 = dt.Clone();
                        foreach (DataRow row in GetRows)
                        {
                            dt1.Rows.Add(row.ItemArray);
                        }
                        return dt1;
                    default:
                        return dt;
                }
            }
            #endregion
            #region 获取DataTable前几条数据
            /// <summary>
            /// 获取DataTable前几条数据
            /// </summary>
            /// <param name="TopItem">前N条数据</param>
            /// <param name="oDT">源DataTable</param>
            /// <returns></returns>
            public static DataTable DtSelectTop(int TopItem, DataTable oDT)
            {
                if (oDT.Rows.Count < TopItem) return oDT;
    
                DataTable NewTable = oDT.Clone();
                DataRow[] rows = oDT.Select("1=1");
                for (int i = 0; i < TopItem; i++)
                {
                    NewTable.ImportRow((DataRow)rows[i]);
                }
                return NewTable;
            }
            #endregion
    
            #region 获取DataTable中指定列的数据
            /// <summary>
            /// 获取DataTable中指定列的数据
            /// </summary>
            /// <param name="dt">数据源</param>
            /// <param name="tableName">新的DataTable的名词</param>
            /// <param name="strColumns">指定的列名集合</param>
            /// <returns>返回新的DataTable</returns>
            public static DataTable GetTableColumn(DataTable dt, string tableName, params string[] strColumns)
            {
                DataTable dtn = new DataTable();
                if (dt == null)
                {
                    throw new ArgumentNullException("参数dt不能为null");
                }
                try
                {
                    dtn = dt.DefaultView.ToTable(tableName, true, strColumns);
                }
                catch (Exception e)
                {
                    throw new Exception(e.Message);
                }
                return dtn;
            }
            #endregion
  • 相关阅读:
    Spring 3.0 发布候选版 3 已经可用!
    NetBeans IDE 6.8 正式版发布!
    250g铜版纸 打印扑克?
    一键安装python
    京东商城副总裁李曦:大数据和电子商务_行业信息化_IT商业新闻网
    9.29的北京-》杭州的票怎么现在网上还没有可以预订呢。。。
    运动服火鸟2代三叶草运动服SWIM CLUB 1976款游泳秋装男款海马淘宝网
    无锡巨人网络科技有限公司简介20120411
    李国庆送的国旗太小了,没动力买东西
    虽然不信god,但是技术上还是算是有信yan的人吧
  • 原文地址:https://www.cnblogs.com/myloveblogs/p/5809488.html
Copyright © 2020-2023  润新知