在 vb.net 中查询两个数据表

query two datatables in vb.net

我遇到了一个问题。
我有两个数据表,具有相同的表结构,我需要从 table1 中选择数据,以便 table2 中不存在记录
是否可以在 vb.net 中执行此操作?如果是,那怎么办?

1
2
Table1(AAno,Agencyname,location)
Table2(AAno,Agencyname,location)

标准:Select AAno,Agencyname,location from table1,table2 where table1.AAno<>table2.AAno


您可以使用 LINQ-to-DataSetEnumerable.Except 来查找 table1 中不在 table2 中的行。假设 AAno 是主键:

1
2
3
4
5
6
7
Dim t1AAno = table1.AsEnumerable().Select(Function(r) r.Field(Of Int32)("AAno"))
Dim t2AAno = table2.AsEnumerable().Select(Function(r) r.Field(Of Int32)("AAno"))
Dim uniqueAAno = t1AAno.Except(t2AAno).ToList()
Dim tblResult = (From row In table1.AsEnumerable()
                 Join AAno In uniqueAAno
                 On row.Field(Of Int32)("AAno") Equals AAno
                 Select row).CopyToDataTable()


您必须在 VB.Net 中使用 ADO.Net。
如果您熟悉 ADO.Net,则在将查询传递到

后将数据放入您的 DataTable 类中

1
2
3
SqlCommand cmd= new SqlCommand("Select AAno,Agencyname,location from table1,table2 where table1.AAno<>table2.AAno",conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt); //dt is a datatable