如何过滤数据表

时间:2015-10-12 16:28:25

标签: c# vb.net datatables

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

我有一个这样的数据表  

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

我希望基于移动设备获得不同的价值,我也需要不在不同表格中退出的数据,但是表格A有 喜欢  

 
  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 :(得分:0)

您可以在DataTable上使用select方法

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

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

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

根据您的评论

更新 在这种情况下,你需要使用除了在 datatable-comparison-using-linq-except-intersect-union

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

答案 1 :(得分: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

答案 2 :(得分:0)

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

或者你的意思是:

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