#region DataTable筛选,排序返回符合条件行组成的新DataTable或直接用DefaultView按条件返回
///
/// DataTable筛选,排序返回符合条件行组成的新DataTable或直接用DefaultView按条件返回
/// eg:SortExprDataTable(dt,"Sex='男'","Time Desc",1)
///
/// 传入的DataTable
/// 筛选条件
/// 排序条件
/// 1,直接用DefaultView按条件返回,效率较高;2,DataTable筛选,排序返回符合条件行组成的新DataTable
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
//csharp/6393