本文介绍了对DataTable进行分组和排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
大家好, 我在数据表中有一个DB对象列表。
Hi All, I am having a list of DB objects in a datatable.
ID ObjectType, ObjectName 1 StoredProcedure, usp_getList 2 Table, tbl_Users 3 Function, udf_getNames 4 View, v_Changes 5 Table, tbl_Admin 6 Function, udf_SplitString我需要按每个对象类型对它们进行分组,然后根据对象名称对它进行排序。
I need to group them by each object type and then sort it according to the object name.
ID ObjectType, ObjectName 1 Function, udf_getNames 2 Function, udf_SplitString 3 StoredProcedure, usp_getList 4 Table, tbl_Admin 5 Table, tbl_Users 6 View, v_Changes我尝试了以下代码,但似乎无法正常工作
I tried the following code, but it seems not working
DataView dv = new DataView(tbl); dv.Sort = "ObjectType ASC"; var groupbyfilter = from d in tbl.AsEnumerable() group d by d["ObjectType "]; foreach (var x in groupbyfilter) x.CopyToDataTable(tbl, LoadOption.OverwriteChanges);请帮忙解决此问题。在此先感谢。
Please help resolve this. Thanks in advance.
推荐答案试试这个: Try this: DataTable dt = new DataTable(); DataColumn ID = new DataColumn(); ID.ColumnName = "ID"; ID.DataType = System.Type.GetType("System.Int32"); ID.AutoIncrement = true; ID.AutoIncrementSeed = 1; ID.AutoIncrementStep = 1; dt.Columns.Add(ID); dt.Columns.Add("ObjectType", typeof(string)); dt.Columns.Add("ObjectName", typeof(string)); DataTable copy = tbl.Copy(); copy.Columns.Remove("ID"); copy.DefaultView.Sort = "ObjectType" + " " + "ASC"; copy = copy.DefaultView.ToTable(); foreach(DataRow drow in copy.AsEnumerable()) { dt.ImportRow(drow); }
现在你可以使用dt作为数据视图的来源。
Now you can use dt as source for your dataview.
更多推荐
对DataTable进行分组和排序
发布评论