在C#中要对Datatable排序,可使用DefaultView的Sort方法。先获取Datatable的DefaultView,然后设置 得到的Dataview的sort属性,最后用视图的ToTable方法将排好序的dataview导出为Datatable。
代码如下:
一、 Datatable排序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
DataTable dt =
new
DataTable();
dt.Columns.Add(
"ID"
,
typeof
(
int
));
dt.Columns.Add(
"Name"
,
typeof
(
string
));
dt.Rows.Add(
new
object
[] { 12,
"lwolf"
});
dt.Rows.Add(
new
object
[] { 100,
"kkkkk"
});
dt.Rows.Add(
new
object
[] { 19,
"jim"
});
dt.Rows.Add(
new
object
[] { 1,
"test"
});
DataTable dtCopy = dt.Copy();
DataView dv = dt.DefaultView;
dv.Sort =
"ID"
;
dtCopy = dv.ToTable();
|
1
|
二、获取DataTable前几条数据
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#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
|