【问题标题】:When using vb.net I need to join 2 datatables to just 1 gridview使用 vb.net 时,我需要将 2 个数据表加入到 1 个网格视图中
【发布时间】:2015-05-04 14:48:18
【问题描述】:

我已经搜索了很多不同的论坛,但没有找到我正在寻找的帮助,所以我们开始吧。

首先我应该告诉您,我很清楚,一种解决方案可能是在我的 sql 语句中进行 SQL 连接,但这并不容易,因为我使用来自 2 个不同数据库的 2 个不同表。所以我很高兴听到另一种解决方案。

现在,我进行了 2 个查询,并创建了 2 个数据表和 2 个网格视图。 我已成功绑定 2 个网格视图中的数据,现在我有点想根据它们共享的 1 列“合并”它们。

我不知道如何在 VB.net 中做到这一点。

基本上我在服务器OKPalle 上的数据库dbo_db_Test_Palle 中有1 个表。从这里我取以下列并放入我的数据表 dt 并绑定到 gridview 1。

| Name | ID | Organisation |

在来自服务器NOTokPalledbo_db_Test_Palle2 的另一个数据表(dt2) 中,我取以下列并放入dt2,并绑定到Gridview 2。

| Nickname | City  | Hobby | ID

我想在GridView 中展示的内容是:

| Name | ID | Organisation | Nickname | City  | Hobby |

所以基本上我希望添加CityHobby 列,从dt2dt,其中ID 匹配的帖子(其他我只是留空)。

我真的希望这里有人可以帮助我。

【问题讨论】:

  • 嗨!我不明白为什么做 SQL Join 不容易。您可以使用其他数据库中的视图和主数据库上的 SP 来返回此表。还是我错过了什么?
  • 您好,Engerlost!我也在研究 SQL 连接,但是当我访问 2 个不同的数据库时,我需要与不同的用户建立连接......我该如何解决这个问题?

标签: sql asp.net vb.net datagridview datatable


【解决方案1】:

类似这样,但我已经有一段时间没有这样做了,您可能需要稍微修改一下。

    Dim ds As New DataSet
    ds.Tables.Add(dt)
    ds.Tables.Add(dt2)
    ds.Relations.Add("rel", dt2.Columns("ID"), dt.Columns("ID"), False)
    dt.Columns.Add("Nickname", GetType(System.String), "Parent.Nickname")
    dt.Columns.Add("City", GetType(System.String), "Parent.City")
    dt.Columns.Add("Hobby", GetType(System.String), "Parent.Hobby")

【讨论】:

  • 我试用了您的代码并收到以下错误:(我将 ID 更改为 BrugerID)------------------------ -------------------------------------------------- ------ 找不到关系 0。说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.IndexOutOfRangeException:找不到关系 0。第 133 行:ds.Relations.Add("rel", dt.Columns("BrugerID"), dt2.Columns("BrugerID"))
  • 哦,是的,它建立了反向的父子关系。我已经编辑了上面的代码来交换两个表在 Relations.Add 行中的位置。
  • 你我的好朋友,太棒了!非常感谢 :)!!现在我将从我的测试页面移出并在更大范围内执行此操作!再次感谢你:)!祝您有美好的一天好先生。 Br Vildgut
  • 但是现在我收到此错误消息:“无法启用此约束,因为并非所有值都有相应的父值。”我很难弄清楚是什么原因造成的?我查看了我的 testDB,它们都有一个 ID 和我希望显示的值,如果我一次搜索它们就可以了。如果我想同时进行所有操作,它不起作用:/
  • 尝试在同一行的末尾添加一个“,False”。您可能想在 MSDN 上阅读这些类和方法。
猜你喜欢
  • 1970-01-01
  • 2014-06-02
  • 1970-01-01
  • 1970-01-01
  • 2017-11-03
  • 1970-01-01
  • 2015-10-30
  • 1970-01-01
  • 2012-10-17
相关资源
最近更新 更多