C# Datatable排序与取前几行数据


在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 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM