首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自单个查询的DataRelation

来自单个查询的DataRelation
EN

Stack Overflow用户
提问于 2009-04-04 22:04:43
回答 1查看 1.1K关注 0票数 0

我有以下一段VB.NET代码:

代码语言:javascript
复制
    Dim conn As New MySql.Data.MySqlClient.MySqlConnection(ConnectionString)
    conn.Open()

    Dim sql = "SELECT * FROM users"
    Dim com = New MySql.Data.MySqlClient.MySqlCommand(sql, conn)

    Dim ds As New DataSet("dsUsers")

    Dim da As New MySql.Data.MySqlClient.MySqlDataAdapter()
    da.SelectCommand = com
    da.TableMappings.Add("Table", "Users")
    da.Fill(ds)

    sql = "SELECT * FROM messages"
    com = New MySql.Data.MySqlClient.MySqlCommand(sql, conn)

    Dim da2 As New MySql.Data.MySqlClient.MySqlDataAdapter()
    da2.SelectCommand = com
    da2.TableMappings.Add("Table", "Messages")
    da2.Fill(ds)

    Dim dr As DataRelation
    Dim col1 As DataColumn
    Dim col2 As DataColumn

    col1 = ds.Tables("Users").Columns("id")
    col2 = ds.Tables("Messages").Columns("users_id")
    dr = New DataRelation("UsersMessages", col1, col2)

    ds.Relations.Add(dr)

基本上,我执行两个查询:第一个获取所有用户,第二个获取所有消息。我在DataSet中定义了两个表,并通过DataRelation将它们链接起来,这样Users表就成为Messages表的父表。

如果我想选择这两个表中的所有行,那么这是可行的,但是如果我有一个包含4个嵌套表和条件查询的更复杂的结构,该怎么办?

代码语言:javascript
复制
SELECT t1.*, t2*, t3.*, t4.*
FROM table1 t1, table2 t2, table3 t3, table4 t4
WHERE t1.id = 3
      AND t2.t1_id = t1.id
      AND t3.t2_id = t2.id
      AND t4.t3_id = t3.id

如何从这个查询中创建一个包含四个表和三个DataRelations的DataSet?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2009-04-05 01:40:50

要做到这一点,唯一的方法是编写代码来实现这一点,即在数据集中创建表,设置表之间的关系,并使用结果中的某些字段填充这些表。

没有自动执行此操作的方法,因为在结果中没有关于每个字段来自哪个表的信息,甚至没有查询哪个表来获得结果的信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/717904

复制
相关文章

相似问题

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