- - PR -
100カラム以上のDataGrid
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-09-04 18:31
みなさま、よろしくお願いします。
16個のDBから120項目を抽出してDataGridに表示させようとしています。 しかしDataSetを利用しようとすると、 「100項目以上のテーブルは作れません」 と出てしまいます。 何か良い方法をご存知の方いらっしゃいましたらご教授お願いいたします。 --環境-- VB.NET ADO.NET SQL2000Server Win2k | ||||||||
|
投稿日時: 2003-09-04 20:28
tokiさん、こんばんは。
「16個のDB」というのが16個のテーブルの事で、それらをJOINした結果を1つのDataTableにFillしようとしているんでしょうか? そうであると仮定して、例えば、そのSQLをサブクエリ単位でいくつかに分割して、対応させる複数のDataTableをDataSet側に定義し(リレーションの設定も行う)、DataGridで階層表示にする、という手は如何でしょうか。 または、DataGridはArrayListにバインド出来るらしいので、120のメンバ変数(またはプロパティ)を持つクラスなり構造体なりにデータを格納してArrayListに追加するという手も、使えるかも知れません。 【追記】 データ格納用のクラスをArrayListに追加する方法ですが、メンバ変数ではなく、プロパティで公開すればDataGridにバインドして表示出来る事を確認しました。 [ メッセージ編集済み 編集者: きくちゃん 編集日時 2003-09-05 12:52 ] | ||||||||
|
投稿日時: 2003-09-04 20:44
「いかにして120項目をDataGridに表示するか」の解決策ではありません。
上記の回答を求める場合,読み飛ばして下さい。 私なら, ・n個まで項目を出力可能です。 ・ユーザは出力項目を選ぶことができます。 という仕様にしますね。 そして, SQLServer側: ・16個のテーブルから120項目抽出するViewを作る アプリ側: ・Viewの項目名一覧を表示する ・ユーザが選んだ項目のみDataGridに出力する として実装すると思います。 選択した項目情報を保存しておき,再利用可能にするのもいいなぁ。 私なら「120項目を常に見たい」と思わないので,こんな回答になりました。 常に見る必要があるなら,この方法は成り立ちません。 | ||||||||
|
投稿日時: 2003-09-04 22:49
そんな制限があったんだ〜と思ってこんなコードを書いてみましたが、
エラーにはなりませんでした。 ADOのエラーですか?コードとかエラーの内容を書いたほうが 回答が得やすいと思いますよ。
解決策を考えてあげましょうよ。 解決することで自分の知識になることもあるし。 | ||||||||
|
投稿日時: 2003-09-05 08:53
別の方向に行ってます、失礼。
私は、それも解決策の1つと思いますよ。120項目並べると、かなり見難いですよ。特に、ある人にとっては110番目の項目が常に見たい場合、必ず長いスクロールをしなければなりません。そして、その項目に対するキーが1番目だったりしたら・・・ ユーザの言うなりで作ればよいわけではないでしょう。ユーザにとっていかに便利作るか、それがソリューション(解決)ではないでしょうか。 #もっとも、こっちが便利であると思うことが、 #ユーザにとっても便利であるとは限らないのですが | ||||||||
|
投稿日時: 2003-09-05 09:06
確かSqlDataAdapterの方にカラム100個までという制約があったような気がします。
DataAdapterを使わずにSqlCommandとSqlConnectionを使って DataSetにデータをFillすればいけたような.... 未確認です。すいません。 | ||||||||
|
投稿日時: 2003-09-05 09:25
仕様書無しさん、お早うございます。
データアダプタ構成ウィザードを使って、「SELECT 1, 2, 3, 4, ...., 120」というSQLを書いてみたのですが、確かに「エラーが発生しました」と表示されますね。 しかし、SqlDataAdapterからデータセットの生成を実行しても、コンパイルして実行してもエラーは発生しませんでした。問題なく120のカラムを持つグリッドが表示されます。 こちらの環境はVS.NET 2003ですが、2002ではどうだったんでしょう...。 | ||||||||
|
投稿日時: 2003-09-05 15:13
投稿者です。
皆様、さまざまなアドバイス、ありがとうございました。 誤り> ×16個のDB ○16個のテーブル 出力カラム数120について> 私も多いと思います;; 聖人さんのおっしゃるように利用者が出力項目を選べるように するのが最終目的です。そして、最大120カラム出力しなければならないので このような質問を投稿させていただきました。 質問方法> まだ慣れていないため、わかりにくくてすみませんでした。 次回からはコードも書くようにします。 皆様のアドバイスを元に、これから作成してみたいと思います。 また質問させていただくときは、よろしくお願いいたします。 |