C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: LINQでのクエリ構文について


(過去ログ 46 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■24714 / inTopicNo.1)  LINQでのクエリ構文について
  
□投稿者/ じいおい (1回)-(2008/09/08(Mon) 17:00:54)

分類:[.NET 全般] 

データベースを勉強中で、LINQによる処理をしようと思っています。
クエリ構文をどのように書いたらいいのかがどうしても分かりません。
よろしくお願いします。
下記のテーブルを下のように取得したいのですが、どうしてもわかりません。
番号の数は変わる事があるので、このようなテーブル構造にしています。
[VB9.0]

テーブル
日付 | 番号 | 値
1/1 | 1 | 234
1/1 | 2 | 12 
1/1 | 3 | 455
1/2 | 1 | 235
1/2 | 2 | 13
1/2 | 3 | 453
1/3 | 1 | 229
1/3 | 2 | 15
1/3 | 3 | 444




結果の取得
日付 | 1 | 2 | 3 |
1/1 | 234 | 12 | 455
1/2 | 235 | 13 | 453
1/3 | 229 | 15 | 444




Using db As New DB("|DataDirectory|\DB.sdf")

Dim results = From c In db.T_DB _
Select (From c In db.T_DB Where c.番号 = 1 Select c.値), _
Select (From c In db.T_DB Where c.番号 = 2 Select c.値), _
Select (From c In db.T_DB Where c.番号 = 3 Select c.値)

  End Using



引用返信 編集キー/
■24720 / inTopicNo.2)  Re[1]: LINQでのクエリ構文について
□投稿者/ たくボン (17回)-(2008/09/08(Mon) 17:46:36)
No24714 (じいおい さん) に返信

> 下記のテーブルを下のように取得したいのですが、どうしてもわかりません。
> 番号の数は変わる事があるので、このようなテーブル構造にしています。

要素数が変更する問合せなのに、どうしてもLINQでする必要があるのでしょうか?
環境がないので検証できませんが、LINKを使うのであればORDER BYでソートして、動的にレコード生成するのが良いかと思われます。
引用返信 編集キー/
■24731 / inTopicNo.3)  Re[2]: LINQでのクエリ構文について
□投稿者/ じいおい (2回)-(2008/09/08(Mon) 21:22:04)
たくボンさん、返信ありがとうございます。

データベースは初めてなので、勉強のつもりで、LINQで出来たらと考えています。
要素数の変更については、頻繁には無いので、とりあえずは考えないとしたら、クエリ構文はどのようになるのでしょう?

> 環境がないので検証できませんが、LINKを使うのであればORDER BYでソートして、動的にレコード生成するのが良いかと思われます。
データセットをつかうということですよね?

引用返信 編集キー/
■24794 / inTopicNo.4)  Re[3]: LINQでのクエリ構文について
□投稿者/ かずき (24回)-(2008/09/10(Wed) 00:26:01)
using System;
using System.Linq;

普通にDateでgroupbyした結果を、ゆっくり料理すればいいような気がします。

namespace ConsoleApplication3
{
    class Record
    {
        public string Date { get; set; }
        public int Number { get; set; }
        public int Value { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var data = new[]
            {
                new Record { Date = "1/1", Number = 1, Value = 234 },
                new Record { Date = "1/1", Number = 2, Value = 12 },
                new Record { Date = "1/1", Number = 3, Value = 455 },
                new Record { Date = "1/2", Number = 1, Value = 235 },
                new Record { Date = "1/2", Number = 2, Value = 13 },
                new Record { Date = "1/2", Number = 3, Value = 453 },
                new Record { Date = "1/3", Number = 1, Value = 229 },
                new Record { Date = "1/3", Number = 2, Value = 15 },
                new Record { Date = "1/3", Number = 3, Value = 444 },
            };

            var results = from record in data
                          orderby record.Number
                          group record by record.Date;
            foreach (var result in results)
            {
                Console.WriteLine(result.Key);
                foreach (var g in result)
                {
                    Console.WriteLine("\t{0}, {1}", g.Number, g.Value);
                }
            }

        }
    }
}

引用返信 編集キー/
■24882 / inTopicNo.5)  Re[4]: LINQでのクエリ構文について
□投稿者/ じいおい (4回)-(2008/09/11(Thu) 17:02:48)
かずき さん返信ありがとうございます。

C#は、気にはなっているのですが、なにぶん勉強中でして、ゆっくり解読して試してみます。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -