2012-03-19 65 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