当前位置:  开发笔记 > 编程语言 > 正文

如何制作C#DataTable过滤器

如何解决《如何制作C#DataTable过滤器》经验,为你挑选了3个好方法。

我的数据表;

    dtData

    ID | ID2
    --------
    1  |  2
    1  |  3


dtData.Select("ID = 1"); one more rows;

我想要行"ID = 1和ID2 = 3"如何制作?



1> Kieren Johns..:

你的意思是这样的吗?:

dtData.Select("ID=1 AND ID2=3");



2> MDV2000..:

好的,这就是我做这些事情的方式......

    GridFieldDAO dao = new GridFieldDAO();
    //Load My DataTable
    DataTable dt = dao.getDT();
    //Get My rows based off selection criteria
    DataRow[] drs = dt.Select("(detailID = 1) AND (detailTypeID = 2)");
    //make a new "results" datatable via clone to keep structure
    DataTable dt2 = dt.Clone();
    //Import the Rows
    foreach (DataRow d in drs)
    {
        dt2.ImportRow(d);
    }
    //Bind to my new DataTable and it will only show rows based off selection 
    //criteria
    myGrid.DataSource = dt2;
    myGrid.DataBind();

注意在我的Select()中,我将标准放在ANDOR之间的Parens中

希望这可以帮助!迈克五世


这是一个比抛出`DataRow []`更好的解决方案.如果您的过滤器碰巧没有返回任何行,并且您需要在代码深处某处的架构,那么您将不会从空数组中获取它!

3> qlayer..:

更好地利用这个:

GridFieldDAO dao = new GridFieldDAO();
//Load My DataTable
DataTable dt = dao.getDT();
//Get My rows based off selection criteria and copy them directly to datatable
DataTable dt2 = dt.Select("(detailID = 1) AND (detailTypeID = 2)").CopyToDataTable();

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有