トップ回答者
初歩的な質問と気になった事

質問
-
初歩的ですいません。
データベースの内容を表示させたりするときに「GridView」など使うと思いますが
よく書籍やそれに関連するサイトをみますとGridViewとSqlDataSourceセットで使われるのを
よくみます。
SqlDataSourceを使わないで手動で処理を書くのとSqlDataSourceをつかって処理を行うのはどちらが
よいのでしょうか?私の場合、コードを記述してDBに接続して書くコンポーネントにバインドするように記述したりしていますが・・・
私がまだ未熟なものですいません。
SqlDataSourceを使うメリット使わないメリットを教えていただければありがたいです。
よろしくお願いします。
tomotomody
回答
-
SqlDataSourceはASP.NET 2.0で追加されました。それまではトモディーさんがされているように、自分でコードを記述するしかありませんでした。しかし、定型的なコードを毎回書くのは面倒なものです。そこで、基本的なデータベースとの連携をコードを書かなくても実現できるようにしたのがSqlDataSourceです。
しかし、SqlDataSourceはそういった基本的な定型しか提供しませんから、定型から外れた応用的なことをすることができません。
なお、あくまで個人的な感想ですが、できるだけSqlDataSourceを使用し、それで無理ならばObjectDataSourceやトモディーさんがされている方法を検討されれば良いと思います。なぜなら、SqlDataSourceが使用できるのであれば、コードを書かない分、開発効率が上がりますし、バグが発生しにくくなるからです。
簡単ですが、以上からメリット、デメリットが読み取れるのではないかと思います。
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/- 回答としてマーク 高橋 春樹 2009年7月23日 8:48
-
> なぜなら、SqlDataSourceが使用できるのであれば、コードを書かない分、開発効率が上がりますし、バグが発生しにくくなるからです。
この点は賛成。
SqlDataSourceを使う場合の大きなデメリットとして、ViewStateにすべてのデータを含んでいる、というのがあります。
ページングやソーティングが自動でできますが、そのために抽出したすべてのデータをViewStateに持つので、たとえば1万件のデータから10件を表示、といった場合にSqlDataSourceを使っていると動作が重い、という状況が発生したりします。
ああ、あと、SQL Serverが対象でないと使えない、というのもあるかな。
あおい情報システム株式会社 小野修司(どっとねっとふぁん)- 回答としてマーク 高橋 春樹 2009年7月23日 8:48
-
SqlDataSourceを使うメリット使わないメリットを教えていただければありがたいです。
トモディー様
はじめまして。
質問への回答と言う訳ではありませんが、個人的には以下の場合にSqlDataSourceを使用します。
・プロト作成時、早くお客様に画面イメージ・操作イメージを確認したい場合
・社内向けのアプリケーション作成の場合これら以外の場合は、仕様変更(データベースが変わる・データベースを使用しないなどの仕様変更)
に柔軟に対応できるように、SqlDataSourceは使用せず、コード記述により取得したデータソースをGridViewコントロールにバインドする方法を取っております。
何か参考になれば幸いです。
MCITP(Database Developer/Database Administrator) MCPD(Web Developer) MCTS(Windows Applications)- 回答としてマーク 高橋 春樹 2009年7月23日 8:48
すべての返信
-
SqlDataSourceはASP.NET 2.0で追加されました。それまではトモディーさんがされているように、自分でコードを記述するしかありませんでした。しかし、定型的なコードを毎回書くのは面倒なものです。そこで、基本的なデータベースとの連携をコードを書かなくても実現できるようにしたのがSqlDataSourceです。
しかし、SqlDataSourceはそういった基本的な定型しか提供しませんから、定型から外れた応用的なことをすることができません。
なお、あくまで個人的な感想ですが、できるだけSqlDataSourceを使用し、それで無理ならばObjectDataSourceやトモディーさんがされている方法を検討されれば良いと思います。なぜなら、SqlDataSourceが使用できるのであれば、コードを書かない分、開発効率が上がりますし、バグが発生しにくくなるからです。
簡単ですが、以上からメリット、デメリットが読み取れるのではないかと思います。
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://blogs.wankuma.com/trapemiya/- 回答としてマーク 高橋 春樹 2009年7月23日 8:48
-
> なぜなら、SqlDataSourceが使用できるのであれば、コードを書かない分、開発効率が上がりますし、バグが発生しにくくなるからです。
この点は賛成。
SqlDataSourceを使う場合の大きなデメリットとして、ViewStateにすべてのデータを含んでいる、というのがあります。
ページングやソーティングが自動でできますが、そのために抽出したすべてのデータをViewStateに持つので、たとえば1万件のデータから10件を表示、といった場合にSqlDataSourceを使っていると動作が重い、という状況が発生したりします。
ああ、あと、SQL Serverが対象でないと使えない、というのもあるかな。
あおい情報システム株式会社 小野修司(どっとねっとふぁん)- 回答としてマーク 高橋 春樹 2009年7月23日 8:48
-
SqlDataSourceを使うメリット使わないメリットを教えていただければありがたいです。
トモディー様
はじめまして。
質問への回答と言う訳ではありませんが、個人的には以下の場合にSqlDataSourceを使用します。
・プロト作成時、早くお客様に画面イメージ・操作イメージを確認したい場合
・社内向けのアプリケーション作成の場合これら以外の場合は、仕様変更(データベースが変わる・データベースを使用しないなどの仕様変更)
に柔軟に対応できるように、SqlDataSourceは使用せず、コード記述により取得したデータソースをGridViewコントロールにバインドする方法を取っております。
何か参考になれば幸いです。
MCITP(Database Developer/Database Administrator) MCPD(Web Developer) MCTS(Windows Applications)- 回答としてマーク 高橋 春樹 2009年7月23日 8:48
-
> 私の場合Sessionでユーザーの情報を格納してますので、SqlDataSource と 手動でコードの
> 記述を使い分けたいと考えております。意味が分かりません。
もともとの話は、データベースからデータを取得して GridView などに表示するとき、SqlDataSource
を使うのがよいかどうかという話だったはずですが。Session を使う使わないとは関係ないと思いますけど。
> もしくは、ObjectDataSourceも使用してみたいとお考えです。
これも Session とは関係ないと思います。どうも話が噛み合っていないようです。質問の内容をクリア
にしていただけませんか。 -
こんにちは、フォーラムオペレーターの高橋春樹です。
SurferOnWwwさん、佐祐理さん、trapemiyaさん、小野@どっとねっとふぁんさん、ノブヒデさん
いつもお世話になっております。トモディーさん、初めまして。
MSDNフォーラムのご利用有難うございます。今回、SurferOnWwwさん、佐祐理さん、trapemiyaさん、小野@どっとねっとふぁんさん、ノブヒデさんから
SqlDataSourceについてのご意見を頂いたので、勝手ながら皆さんからの投稿に、回答マークを付けさせて頂きました。
不適切と思いましたら、回答マークを削除することも可能です。今後ともMSDNフォーラムをよろしくお願いします。
マイクロソフト株式会社 フォーラム オペレータ 高橋春樹