トップ回答者
DatabaseからASP.NETにて開発したいのですが

質問
回答
-
KentaroM さんからの引用
ようはデータベースからどんな情報が、何軒あるかわからない訳ですから表の数を特定できないので、表示するには何軒あっても自動的に生成してくれるgridView系のものが楽なのですが、そのあとそこから掘り下げて行くにはなかなか難しいですね。
キーで受け渡していきます。ユーザー情報でしたら、クリックした際に如何にユーザーIDを渡すかを考えます。ユーザーIDが渡ってくれば、そこからデータを読み、ユーザーに関する詳細ページなりを表示することができます。このユーザーIDを渡す方法が、前述しているように、LinkButtonのCommandArgumentに仕込んだり、HyperLinkのNavigateUrlにクエリー文字として仕込んだりするわけです。
ようは、キーさえ受け取ってしまえば、あとはそこからデータを読めばいいのです。この辺りはWindowsフォームのプログラムとなんら変わりはありません。
すべての返信
-
-
なるほど。dataSetをsession変数に入れてしまうという事ですね。gridViewについてなんですが、フォーラムサイトの様に取り込んできたデータにリンクをつけて移動させたいんですが(たとえばフォーラムサイトでuserNameやトピックのリンクから返信や、本文の観覧が出来るような感じ)、スマートタグ等を使うと新しい項目の追加ではそのカラムにLinkButton等を挿入できるのですが、いまいちどうやっていいのかわかりません。htmlソースの中でコードを追加しなくてはいけないのでしょうか?VS2005はどこまでがデザインに頼っていいのか、手作業が必要なのかの境界線が難しいですね。(と言っても2005から始めましたが・・・。)笑
-
KentaroM さんからの引用
dataSetをsession変数に入れてしまうという事ですね。
技術的には可能ですが、フォーラムなんかですと記事がいつ追加されるかわかりませんので、その都度データベースを読みに行った方が良いように思います。KentaroM さんからの引用
gridViewについてなんですが、フォーラムサイトの様に取り込んできたデータにリンクをつけて移動させたいんですが(たとえばフォーラムサイトでuserNameやトピックのリンクから返信や、本文の観覧が出来るような感じ)、スマートタグ等を使うと新しい項目の追加ではそのカラムにLinkButton等を挿入できるのですが、いまいちどうやっていいのかわかりません。
LinkButtonですと、デザイナからテンプレートの編集へと進んでいき、そこでCommandArgumentにIDをバインドさせることが可能です。このIDをRowCommandイベントで取り出して、いろいろと処理を行うことが可能です。KentaroM さんからの引用
htmlソースの中でコードを追加しなくてはいけないのでしょうか?
デザイナでできるところはそこで処理をして、その後必要があれば、HTML側を手で修正すれば良いと思います。 -
おがわみつぎ さんからの引用
都度データベースに問い合わせることには反対です。
#貧弱なマシンだったら一発で Lock Wait で死んじゃいますし、DDos すれば楽勝で落とせます。
どのぐらいの規模のシステムが要求されるかにもよると思いますが、私は一般的なネット上の掲示板程度のことを想定していました。一般的なネット上の掲示板ですとテキストベースのCGIで動いているものも少なくないわけですし、このレベルのものであれば、その都度データを読みにいってもいいかな?と考えました。 参照系が中心であれば確かにキャッシュは有効な手段ですが、こちらからの書き込みなどのアクションでその内容が変化するものの場合、キャッシュが返って邪魔になる時があります。上手にキャッシュをコントロールできれば良いのですが、それがうまくできていないサイトもたまに見かけ、ユーザーを混乱させてしまいます。そういうわけで、ちょっと短絡的にその都度データを読みに行けばよいと考えてしまいました。おがわさんの発言から私もうっかりしていたのですが、キャッシュのことを実は忘れていました。SqlDataSourceになってから、比較的簡単にデータのキャッシュができるようになっています。検索した結果を何ページにも渡って表示する場合には、ぜひ、検討してみて下さい。
自分も横着せずに、積極的にキャッシュとかつかうべきですね(^^; ちなみにSqlDataSourceのEnableCachingは既定でfalseです。おがわさん、フォロー、ありがとうございました。
-
KentaroM さんからの引用 あとはそのリンク先を指定したいのです(たとえば、userNameにリンクがあるとして、その選択したuserのページに移動する等)がどうしたらよろしいのでしょうか???
移動したいのであれば、HyperLinkコントロールを使用して、そのNavigateUrlにIDなどのデータをクエリ文字列で含ませてしまう方がいいんじゃないでしょうか?
LinkButtonでもItemCommandイベントで判断して、そこからResponse.Redirectすればどうようにできますが、前者のHyperLinkコントロールを使う方がすっきりするように思えます。ただ、URLにIDとかが出ちゃいますが。 -
hyperLinkのNavigateUrlで移動は出来ましたが、そのクリックした例えばユーザー名の情報も一緒に移動するにはどうしたらいいのでしょうか??gridviewとかdataListなどで一気にデータを表示してしまうと、その後の細かい作業がどうしたらいいのかなかなかわかりにくいです。ようはデータベースからどんな情報が、何軒あるかわからない訳ですから表の数を特定できないので、表示するには何軒あっても自動的に生成してくれるgridView系のものが楽なのですが、そのあとそこから掘り下げて行くにはなかなか難しいですね。フォーラム等はレンタルサーバーもあるようで一から作る必要もないようですが。最近は。まあ知識としては知っておきたいです。
-
KentaroM さんからの引用
ようはデータベースからどんな情報が、何軒あるかわからない訳ですから表の数を特定できないので、表示するには何軒あっても自動的に生成してくれるgridView系のものが楽なのですが、そのあとそこから掘り下げて行くにはなかなか難しいですね。
キーで受け渡していきます。ユーザー情報でしたら、クリックした際に如何にユーザーIDを渡すかを考えます。ユーザーIDが渡ってくれば、そこからデータを読み、ユーザーに関する詳細ページなりを表示することができます。このユーザーIDを渡す方法が、前述しているように、LinkButtonのCommandArgumentに仕込んだり、HyperLinkのNavigateUrlにクエリー文字として仕込んだりするわけです。
ようは、キーさえ受け取ってしまえば、あとはそこからデータを読めばいいのです。この辺りはWindowsフォームのプログラムとなんら変わりはありません。