0

私はLINQが初めてです。いくつかの方法で試しましたが、必要な結果が得られません。これを解決するのを手伝ってください。VB.NET での LINQ to SQL。

Ling to SQL クラスを使用してクエリを実行し、期待される結果を取得しています。クエリ結果の後、それを使用して 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のみを使用する必要があります。

4

2 に答える 2

0
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 
于 2013-03-30T14:58:05.633 に答える
0

GroupByメソッドでこれを行うことができます

Dim results = db.Books.GroupBy(Function(b) b.bookID, Function(b) b.authorname)

または、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
于 2013-03-30T02:00:49.150 に答える