我有两个数据表,它们有资产映射(标记到每个资产的资产ID和EmpID)和关联详细信息(公司中所有员工的EmpID)。现在我想要构建第三个数据表,它显示没有标记到有效关联的资产,即第一个数据表中的EmpID不应该出现在第二个数据表中。
在SQL术语中,它将是:
Select AssetID, UserID from AssetMapping
Where UserID Not In (Select EmpID from AssociateDetail)如何完成在第三个数据表(稍后需要在数据网格视图中显示)中获取结果的任务?
发布于 2013-12-30 05:53:42
我还不知道UserID存储在哪里,但这不应该太重要。
在这个小示例中,您将使用LINQ从前两个表(AssetMapping和AssociateDetails)开始构建第三个表数据。最终结果是第3个表,其中的资产与您的联营表中的任何EmpID都不匹配
结果:

基本上,我填充我的数据库表AssetMapping和AssociateDetails。然后,当我单击Button1时,我保存了一个EmpID列表,并获得了一组没有链接到任何这些AssetID的EmpID。
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Me.AssociateDetailsTableAdapter.Fill(Me.StackOverflowDataSet.AssociateDetails)
Me.AssetMappingTableAdapter.Fill(Me.StackOverflowDataSet.AssetMapping)
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim EmpIdsList = (From em In StackOverflowDataSet.AssociateDetails
Select em.Field(Of Int32)("EmpID")).ToList()
Dim q = From myRow In StackOverflowDataSet.AssetMapping
Where EmpIdsList.Contains(myRow.Field(Of Int32)("EmpID")) = False
Select myRow
DataGridView3.AutoGenerateColumns = True
DataGridView3.DataSource = q.ToList()
End Sub
End Classhttps://stackoverflow.com/questions/20829307
复制相似问题