2012-03-19 62 views
0

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

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

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

+0

你可以给我们你的数据表的结构和你要使用的标准符号吗? – squelos 2012-03-19 09:51:09

+0

@squelos plz检查上面更新的问题 – Trupti 2012-03-19 10:06:42

回答

0

你可以使用LINQ-to-DataSetEnumerable.Except找到table1中不在表2的行后获取数据到您的DataTable类。假设AAno是主键:

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() 
+0

非常感谢Tim Schmelter。 其实我没有多少时间来等待答复,所以我尝试了其他方法,然后使用数据库来完成我的工作。 我的应用程序是在.net 2.0中,所以无法使用LINQ.But,但仍然感谢这些信息,它非常有帮助。 – Trupti 2012-03-20 05:02:42

0

你必须在VB.Net使用ADO.Net。 如果您熟悉ADO.Net通过查询在

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 
+0

在上面的sql命令中,我希望你引用table1和table2作为datatables(VB.net)而不是sql表。 将执行上述并让你知道结果。 谢谢 – Trupti 2012-03-19 11:23:34

+1

这些都是sql表格 – 2012-03-19 13:39:42