Vb.net 将列的值转换为一行

Vb.net 将列的值转换为一行,vb.net,linq,Vb.net,Linq,我是LINQ的新手。我已经尝试了两种方法,但我无法得到我想要的结果。 请帮忙解决这个问题。VB.NET中的LINQ到SQL 我使用lingtosql类来运行查询以获得预期的结果。 查询结果结束后,我将使用它填充Datagridview。 我找不到以下问题的解决办法。有人能帮忙吗? 谢谢 表: bookID authorID authorname 111 101 Mark 222 102 Tim 333 103 John 444

我是LINQ的新手。我已经尝试了两种方法,但我无法得到我想要的结果。 请帮忙解决这个问题。VB.NET中的LINQ到SQL

我使用lingtosql类来运行查询以获得预期的结果。 查询结果结束后,我将使用它填充Datagridview。 我找不到以下问题的解决办法。有人能帮忙吗? 谢谢

表:

bookID  authorID  authorname
111     101       Mark
222     102       Tim
333     103       John
444     104       Rebecca
111     102       Tim
111     103       John
222     104       Rebecca
结果应该是:

bookID   author1     author2         author3....

111      Mark            Tim                  John

222      TIm              Rebecca          N/A or Empty

333      John            N/A or Empty    N/A or Empty

444      Rebecca      N/A or Empty    N/A or Empty
我只能使用LINQ

您可以使用该方法来完成此操作

或者如果您更喜欢linq查询语法

Dim results = _
    From b In db.Books _
    Group b.authorname By bookID = b.bookID Into authorname = Group
你可以把它当作

For Each group In results
    Console.Write(group.Key)
    Console.Write(":")
    For Each name As String In group 
        Console.Write("  " & name)
    Next 
    Console.WriteLine()
Next 
输出

111: Mark Tim John
222: Tim Rebecca
333: John
444: Rebecca

欢迎来到堆栈溢出!1.请注意,以合理的方式格式化您的帖子确实有助于提高可读性。(我已经编辑过了,但请下次,从一开始就自己花点时间来做。)。这与VB.NET有什么关系?=>请编辑您的问题并解释您正在尝试做什么,显示VB.NET代码中的相关位,并解释它如何不做您期望的事情。谢谢谢谢你的快速回复。实际上,我只需要一个带有LINQ语句的查询。只要修改一下问题。@tim这个问题是我回答的第一行。剩下的只是通过阅读代码来演示结果。我得到了预期的结果。谢谢。!!实际上我变了一点。请看我的答案。非常感谢。@tim是的,很抱歉我的vb.net有点生锈了。这些天我主要写c#。
111: Mark Tim John
222: Tim Rebecca
333: John
444: Rebecca
Dim results = From b In db.Books Group b.authorname _ 
                By bookID = b.bookID Into nameg = Group select bookid,nameg

For each gr in results 
    Console.Write(gr.bookid)
    Console.Write(":")
    For Each name As String In gr.nameg 
    Console.Write("  " & name)
Next 
Console.WriteLine()
Next