搜尋此網誌

2014年10月22日 星期三

如何過濾及排序DataTable並複製到新的DataTable

1.前言
將DataTable經由過濾,排序得到新的資料表。

2.說明
提供兩個方法,一種是將DataTable轉成DataView,利用DataView的RowFilter及Sort方法得到所需資料,然後再將DataView轉成DataTable。
另一種方法是利用DataTable.Select().CopyToDataTable()方式得到資料表。

private DataTable DataTableFilterSort(DataTable oTable, string filterExpression, string sortExpression)
{
    DataView dv = new DataView();
    dv.Table = oTable;
    dv.RowFilter = filterExpression;
    dv.Sort = sortExpression;
    DataTable nTable = dv.ToTable();
    return nTable;
}

private DataTable DataTableFilterSort(DataTable oTable, string filterExpression, string sortExpression)
{
    DataTable nTable = oTable.Select(filterExpression, sortExpression).CopyToDataTable();
    return nTable;
}

3.應用

DataTable oTable = GetDataTable("cars");
DataTable nTable = DataTableFilterSort(oTable, "SPEED='10'", "DIST asc");
dataGridView1.DataSource = nTable;

沒有留言:

張貼留言