對datatable操做,查詢

#region DataTable篩選,排序返回符合條件行組成的新DataTable或直接用DefaultView按條件返回  
/// <summary>  
/// DataTable篩選,排序返回符合條件行組成的新DataTable或直接用DefaultView按條件返回  
/// eg:SortExprDataTable(dt,"Sex='男'","Time Desc",1)  
/// </summary>  
/// <param name="dt">傳入的DataTable</param>  
/// <param name="strExpr">篩選條件</param>  
/// <param name="strSort">排序條件</param>  
/// <param name="mode">1,直接用DefaultView按條件返回,效率較高;2,DataTable篩選,排序返回符合條件行組成的新DataTable</param>  
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  



harp] view plaincopyprint?
#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  
 
#region 獲取DataTable中指定列的數據  
/// <summary>  
/// 獲取DataTable中指定列的數據  
/// </summary>  
/// <param name="dt">數據源</param>  
/// <param name="tableName">新的DataTable的名詞</param>  
/// <param name="strColumns">指定的列名集合</param>  
/// <returns>返回新的DataTable</returns>  
public static DataTable GetTableColumn(DataTable dt, string tableName, params string[] strColumns)  
{  
    DataTable dtn = new DataTable();  
    if (dt == null)  
    {  
        throw new ArgumentNullException("參數dt不能爲null");  
    }  
    try  
    {  
        dtn = dt.DefaultView.ToTable(tableName, true, strColumns);  
    }  
    catch (Exception e)  
    {  
        throw new Exception(e.Message);  
    }  
    return dtn;  
}  
#endregion  
相關文章
相關標籤/搜索