DataTable操作

一 复制DataTable中符合条件的DataRow到新的DataTable中

  One:

DataTable TableTemp = new DataTable();//临时table
DataTable tableAd = new Web.DAL.FreeBase().TranSQLGetTable("select a.ClassName,b.ParentId,b.Name,b.Pic,b.Url,b.Sorts from AdClass a inner join Ad b on a.Id=b.ParentId");//查询的结果
            if (tableAd != null && tableAd.Rows.Count > 0)
            {
                Tableflag = tableAd.Copy();//复制结构
                Tableflag.Clear();//清除临时数据
                foreach (DataRow dr in tableAd.Rows)
                {
                    if (dr["ParentId"].ToString().Equals("17"))
                    {
                        DataRow tempRow =TableTemp.NewRow(); //创建与该表相同架构的新行              tempRow["ClassName"] = dr["ClassName"];              tempRow["ParentId"] = dr["ParentId"];              tempRow["Name"] = dr["Name"];              tempRow["Pic"] = dr["Pic"];              tempRow["Url"] = dr["Url"];              tempRow["Sorts"] = dr["Sorts"];              TableTemp.Rows.Add(tempRow);            }           }         }

Two:

#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  

//选取ParentId=17的所以行,并根据Sorts降序排序TableTemp = SortDataTable(tableAd, "ParentId=17", "Sorts Desc", 2);

Three:

        #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

//选取前7行数据TableTemp = DtSelectTop(7, Table1);
时间: 2024-10-11 14:01:23

DataTable操作的相关文章

c#datatable操作

c#操作datatable 1.创建表 DataSet ds=new DataSet(); DataTable dt=new DataTable("User"); ds.Add(dt); dt.Columns.Add("user_name",typeof(string)); dt.Columns.Add("user_password",typeof(string)); dt.Columns.Add("user_page",ty

DataTable操作(建表,建行,建列,添加数据)

public DataTable GetNewTable() { DataTable dt2 = new DataTable("NewDataSet"); //创建一个新Table,必须设置表名 dt2.Columns.Add(new DataColumn("Result",typeof(System.String))); //添加字段,并设置类型 DataRow row = dt2.NewRow(); //创建一个新的行 row["Result"

LINQ系列:LINQ to DataSet的DataTable操作

LINQ to DataSet需要使用System.Core.dll.System.Data.dll和System.Data.DataSetExtensions.dll,在项目中添加引用System.Data和System.Data.DataSetExtensions. 1. DataTable读取列表 DataSet ds = new DataSet(); // 省略ds的Fill代码 DataTable products = ds.Tables["Product"]; IEnume

Datatable 操作行数据

我们直接看例子.然后我加上我得理解在旁边. function getToSaveArr(){ var trs = $('#rap-table-list tbody tr');                  //获取datatable行数据 对象 var arr = new Array(); for(var i=0;i<trs.length;i++){                                 //遍历行数据对象 var tr = trs[i]; var uuid = _

DataTable 操作,克隆,添加行

DataSet dt = rule.GetMyPayOrder(cid, uid); int coutf = dt.Tables[0].Rows.Count;//父及数量 int couts = dt.Tables[1].Rows.Count;//子集数量 for (int i = 0; i < coutf; i++) { DataTable t=new DataTable();//子集 t = dt.Tables[1].Clone(); //克隆结构 Copy()复制全部 for (int j

Linq&amp;Lumda---LINQ to DataSet的DataTable操作

1. DataTable读取列表 DataSet ds = new DataSet();// 省略ds的Fill代码DataTable products = ds.Tables["Product"];IEnumerable<DataRow> rows = from p in products.AsEnumerable()                            select p;foreach (DataRow row in rows){    Console

DataSet DataTable操作

DataSet ds = new DataSet();            DataTable dt = new DataTable("OrderList");            dt.Columns.Add(new DataColumn("ID", typeof(string)));            dt.Columns.Add(new DataColumn("FLMC", typeof(string)));            

C# DataTable操作,转载

DataTable 排序 DataRow[] rows = dataTable1.Select("", "ord asc"); DataTable t = DataTable1.Clone(); t.Clear(); foreach (DataRow row in rows)     t.ImportRow(row); DataTable1 = t; VS2005中这种方法最简单: DataView dv = dt.DefaultView; dv.Sort = &q

DataTable操作汇总

1.排序 DataTable dt = new DataTable(); dt.Columns.Add("Name"); dt.Columns.Add("Age");//因为是字符串,所以排序不对 dt.Rows.Add("小明", "21"); dt.Rows.Add("小张", "10"); dt.Rows.Add("小红", "9"); dt