2012-09-12 65 views
0

在vb.net我有两个数据表dt1dt2。两者都只有一列。查询两个数据表

现在我需要另一个表dt3,它应该有dt1的行在dt2中不存在。

我试图与LINQ做:

Dim results = From table1 In dt1 
       Join table2 In dt2 On table1(0) Equals table2(0) 
       Select table1(0) 

但这只返回匹配。但我需要相反的行(dt2中没有行)。

有没有可能没有LINQ?

+1

此前文章解释如何做到这一点的SQL:http://stackoverflow.com/questions/8165534/select-rows-not-in-another-table-sql-server - 查询 –

+0

谢谢,但我需要在VB.NET – Olivarsham

+1

VB.net是**不是**数据库引擎或接口,你使用别的东西(如SQL)从VB.net连接到数据库 你问过关于做它**没有** LINQ。我给你指出了答案。如果你**做**想用LINQ来做这个尝试读取它也http://msdn.microsoft.com/en-us/library/bb386976.aspx –

回答

1

据我所知,你不需要连接(因为你只选择第一个表中的行)。您可以使用LINQ查询像

From table1 In dt1 _ 
Where Not (From table2 In dt2 Where table2(0) = table1(0)).Any() _ 
Select table1(0) 
+0

它的抛出错误:“重载解析失败,因为没有可访问的'字符'接受这些参数。“ – Olivarsham

+0

我的不好。给出正确的数据类型。改变了。现在它工作正常。谢谢 :) – Olivarsham