- - PR -
GridViewで行・列の入れ替え
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-03-05 19:53
初めて投稿させていただきます。
よろしくお願いします。 現在VS2005+C#でWebアプリケーションを作成しようとしています。 GridViewの行列の入れ替え+αで苦慮しております。 DB上に以下のような構造のテーブルがあります。 id,品番1,個数1,品番2,個数2,品番3,・・・ これをDataGrid上で、以下のように表示させたいと思っています。 |品番 |個数 | |品番1のデータ|個数1のデータ| |品番2のデータ|個数2のデータ| ・ ・ ・ 基本書などは手元にあるのですが、このようなケースに対応した記事が無く、 手詰まってしまっております。 稚拙な質問で申し訳ありませんが、よろしくお願いします。 | ||||
|
投稿日時: 2008-03-05 20:26
一行をこういう形で表示したいということであれば、TemplateFieldを2列作って それぞれにLabelやらを縦に3つずつ出すようにしてみてはどうでしょう? ...じゃなかった、2つずつでした。 [ メッセージ編集済み 編集者: RapidExpress 編集日時 2008-03-05 21:59 ] | ||||
|
投稿日時: 2008-03-06 07:11
このような正規化されていないテーブルを設計すると、後で泣くことになりますよ。 今回は、なんとか解決策を見つけても将来致命的な問題が発生する可能性があります。 データベースを再設計したらどうでしょうか。 _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 | ||||
|
投稿日時: 2008-03-06 08:16
一時DataTableに入れなおせばいいと思います。(その後Bind)
Accessさんが言われているように、品番単位の集計とか、品番で検索するとか は無いですよね。。。。。(あればSELECT文を想像してみてください) | ||||
|
投稿日時: 2008-03-07 19:23
ご返答ありがとうございます。
>データベースを再設計したらどうでしょうか。 他社さんからもらってるテーブルが元なので、簡単に直してって言えないのです… >Accessさんが言われているように、品番単位の集計とか、品番で検索するとか >は無いですよね。。。。。(あればSELECT文を想像してみてください) うっ… 質問では長くなるので書かなかったのですが、 |品番1|(別テーブルから)品番1の商品名|個数1|(さらに別テーブルから)金額1| という風に、他のテーブルにあるデータとも絡めろと言われています。 結果として見積表を作ろうとしているのです。 >一時DataTableに入れなおせばいいと思います というのは、どのようにしたらよろしいのでしょうか? 表示用のDataTableを新たに作るということでしょうか? | ||||
|
投稿日時: 2008-03-07 19:37
そうですか。テーブル変更出来ないですか。。。。
そうです。表示用を作ります。 もう一つの案ですが、汚いテーブルから正規化されたテーブルに トリガーで同期させる様にする(ちょっと厄介ですが、また件数の問題もあり) と集計等が楽ですが(たくさん集計があればメリットあり) あくまでも案で現実的かどうかは判断してください。 | ||||
|
投稿日時: 2008-03-12 12:48
PIVOT使うと多分楽になると思います。
Oracle11g、もしくはSQLServer2005以降限定ではありますが。。。 |
1