【问题标题】:How to make C# DataTable filter如何制作 C# DataTable 过滤器
【发布时间】:2010-07-29 12:08:36
【问题描述】:

我的数据表;

    dtData

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


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

我想要行“ID = 1 And ID2 = 3”怎么做?

【问题讨论】:

    标签: c# datatable


    【解决方案1】:

    你的意思是这样的吗?:

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

    【讨论】:

      【解决方案2】:

      好的,我就是这样做的……

          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() 中注意,我将标准放在 Parens 中的 ANDOR 之间

      希望这会有所帮助! 迈克V

      【讨论】:

      • 这比扔DataRow[] 更好。如果您的过滤器碰巧没有返回任何行,并且您在代码深处需要架构,那么您将无法从空数组中获取它!
      • 哪个命名空间有 GridFieldDAO?或者这不适用于winforms?
      【解决方案3】:

      最好用这个:

      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();
      

      【讨论】:

      【解决方案4】:
      DataTable dt2 = dt.Select("ID = 1").CopyToDataTable;
      

      确保 dt 中有行

      【讨论】:

        【解决方案5】:

        在这里,您可以使用 Linq 的 CopyToDataTable 方法将您的内容复制到另一个 DataTable,同时通过过滤选择特定的行。

        DataTable dt2 = dt.Select("state = 'FL' ").CopyToDataTable; 
        

        【讨论】:

        • 你应该在你的回答中添加更多细节,向其他人解释为什么这是有效的。
        【解决方案6】:

        很好的例子,非常有帮助。想要添加一件事 - 如果您需要在字符串上进行选择,请使用以下内容:

        DataTable dt2 = dt.Select("state = 'FL' "); 
        

        【讨论】:

        • 错误:无法将类型“System.Data.DataRow[]”隐式转换为“System.Data.DataTable”
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多