对datatable操作,查询

摘要:
#regionDataTable过滤、排序并返回由限定行组成的新DataTable,或使用DefaultView按条件过滤直接返回//////DataTable过滤、排序并返回由限定行组成的新DataTable,或使用DefaultView按条件过滤直接返回//例如:SortExprDataTable(dt,“Sex='men'”,“TimeDesc”,1)//////˂par
#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  

  

免责声明:文章转载自《对datatable操作,查询》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用Uboot启动内核并挂载NFS根文件系统MikroTik RouterOS虚拟机/实体机安装方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

CentOS7 初始化配置

允许新TCP连接net.ipv4.TCP _ tw_ reuse=1net.ipv4.TCP _ mem=945000009150000009270000000net.ipv4 TCP _ fin_ Timeout=1#启用keepalive时,TCP发送keepalive消息的频率。默认值为2小时net.ipv4.tcp _keepalive_Time=3...

Uni-app v-on监听事件

使用标记上的v-on监视事件。缩写为@click common click events方法:方法:{Focus(){console.log;},blur(){console.log;},confirm(){console.log;},click(){console.log;},tap(){console.log;},longpress(){console....

HTML中canvas的大小调整

今天用到canvas元素,发现它的大小不是像普通dom元素一样,直接设置css样式可以改变的,它会由自己原本的大小伸缩。例如,1.如果直接在canvas元素中添加style='300px;height:300px',这会导致伸缩,如图2.换种方式在css样式表中加入样式设置宽高产生的效果也是一样的。...

狼人杀规则

自爆后,所有演讲立即暂停,进入夜间。自爆后的那晚,狼人可以指着那把刀。预言家只能验证某个玩家是否是狼人,除狼人是否是狼人之外的所有信息都无法验证。如果先知测试丘比特,法官不必担心丘比特是哪一个阵营,只会展示好人的手势。...

Java 实体类转json对象,属性名转key后首字母强制被转成小写的解决方案

  2.原因分析我们知道在Java规范中,实体类的属性名的命名规范需要遵循首字母小写的驼峰命名法,既是规范也是约束也是牢笼。如果不喜欢这种实现方式,还可以迭代json取值,将key的首字母转大写,也是可以哒。...

【转】设置:ftl模板文件编辑器

在学习了Freemarker如何生成Word文件的知识后,博客作者使用Eclipse进行开发,并使用内置JSP框架编辑ftl文件。在编辑ftl文件之前,如果您的Eclipse没有指定ftl的编辑方法,则会提示您安装ftl模板的编辑器或使用TextEditor进行编辑。我没有选择在这里为ftl模板安装编辑器,所以我跳过了。...