在两个表之间匹配记录

时间:2019-08-16 08:28:20

标签: asp.net vb.net

我有下面的代码在两个不同的表之间进行匹配。该代码仅将第一条记录更新为“匹配”。

我想比较T1中ID字段中的每个记录(如果它们存在于T2中),例如要检查A是否存在于T2中,然后转到T1中的下一个记录,并通过循环检查B是否存在于T2中,直到T1中的所有记录都匹配

Table 1

ID
A
B
C

Table 2

ID
A
B

Expected Matching Results

ID 
A
B

请帮助

   If rs2("ID").Value = rs1("ID").Value Then
        rs2.MoveNext()
        Do While Not rs2.EOF()

            rs1("Matching").Value = "Matched"
            rs1.Update()
            rs2.MoveFirst()
        Loop

    End If

1 个答案:

答案 0 :(得分:0)

假设我正确理解了您的问题,如果T2中有相应的ID记录,则只想更新T1中的“匹配”列。正如Peter所说,在SQL中执行此操作将是理想的选择。

如果您真的想循环,Peter是正确的,那就是您有一个无限循环:您在达到记录集的末尾时退出,但是在每次迭代结束时,您都将重置为第一条记录。

我不知道为什么已经找到匹配项时为什么要遍历rs2。一旦您知道rs1("ID").Value = rs2("ID").Value,然后只需更新rs1中的Matching记录并调用rs2.MoveFirst(),就可以在尝试为T1中的下一个ID查找匹配项时从顶部开始。这里不需要循环。