首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vb.net使用来自多个数据表的数据更新数据网格视图

问Vb.net使用来自多个数据表的数据更新数据网格视图
EN

Stack Overflow用户
提问于 2013-12-30 03:37:57
回答 1查看 1.1K关注 0票数 0

我有两个数据表,它们有资产映射(标记到每个资产的资产ID和EmpID)和关联详细信息(公司中所有员工的EmpID)。现在我想要构建第三个数据表,它显示没有标记到有效关联的资产,即第一个数据表中的EmpID不应该出现在第二个数据表中。

在SQL术语中,它将是:

代码语言:javascript
复制
Select AssetID, UserID from AssetMapping
Where UserID Not In (Select EmpID from AssociateDetail)

如何完成在第三个数据表(稍后需要在数据网格视图中显示)中获取结果的任务?

EN

回答 1

Stack Overflow用户

发布于 2013-12-30 05:53:42

我还不知道UserID存储在哪里,但这不应该太重要。

在这个小示例中,您将使用LINQ从前两个表(AssetMapping和AssociateDetails)开始构建第三个表数据。最终结果是第3个表,其中的资产与您的联营表中的任何EmpID都不匹配

结果:

​

基本上,我填充我的数据库表AssetMapping和AssociateDetails。然后,当我单击Button1时,我保存了一个EmpID列表,并获得了一组没有链接到任何这些AssetID的EmpID。

代码语言:javascript
复制
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 Class
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20829307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档