首页 文章

如何过滤数据表

提问于
浏览
-2

我想根据某些条件过滤数据表 .

我有一个这样的数据表

Tabel A
 MobileNo     Email 
 9999999999   test@test1.com
 8888888888   test@test2.com
 9999999999   test@test5.com
 7777777777   test@test6.com

我希望得到基于移动设备的独特 Value ,我也需要不在表格中但不在表格中存在的数据
喜欢

Distinct Table                                          Ignore Table
  MobileNo     Email                                MobileNo     Email 
 9999999999   test@test1.com                        9999999999   test@test5.com
 8888888888   test@test2.com
 7777777777   test@test6.com

我也试过谷歌搜索,但这不是很容易理解 .

提前致谢

3 回答

  • 0

    您可以在DataTable上使用select方法

    Dim dtFiltered As New DataTable()
    dtFiltered = dtAllData.DefaultView.ToTable(True, "MobileNo")
    

    dtAllData是包含所有记录的DataTable
    dtFiltered仅包含Distinct Records

    有关详细信息,请查看MSDN article

    UPDATE 根据您的评论
    在这种情况下你需要使用除了datatable-comparison-using-linq-except-intersect-union

    从所有记录中提取不同的记录到第二个DataTable,然后使用Except来比较第一个和第二个DataTable

  • 0

    感谢你的帮助

    最后我得到了解决方案

    Dim ValidData = (From row In tbValid.AsEnumerable()
                              Let Mobile = row.Field(Of String)("Mobile")
                              Group row By Mobile Into DupMobile = Group
                              Select DupMobile.First).ToArray
    
         Dim Ignoredata = tbValid.AsEnumerable().Except(ValidData.AsEnumerable(), DataRowComparer.Default).ToArray
    
  • 0

    从您的示例中,您所做的就是订购您的手机号码 . 以降序排列,这意味着您可以创建一个SQL来表达如下内容:在语句末尾的ORDER BY MobileNo DESC . 至少它会以相同的方式显示

    或者你的意思是:

    Dim dv As DataView = New DataView(DataTable.DataView)
    dv.RowFilter = "%" &...
    

相关问题