DOBON.NET DOBON.NETプログラミング掲示板過去ログ

GUIから作成するDataSetのメリットって

環境/言語:[C#]
分類:[.NET]

お世話になります。

技術的な好奇心なんですが、Visual Studioのサーバエクスプローラから作成する
DataSetのメリットがわかりません。

わからないこと
 上記の方法で作成したDataSetも単体で何でも出来るんではなく
 他にConnection、DataAdapterが必要なんで、
 手動で作成する下記の方法との違いが理解できません。

  DataSet dsTmp = new DataSet();
  using (SqlConnection conTmp = new SqlConnection(接続文字列))
  {
   string sqlTmp = "SELECT hoge FROM TmpTbl WHERE id = 3";
   SqlDataAdapter daTmp = new SqlDataAdapter(sqlTmp, conTmp);
   daTmp.Fill(dsTmp, "Tmp");
  }
 どっちで作成しても結局、Fillした時点でデータベースにアクセスするので、
 同じ事になるんではないでしょうか?

 違う点としてはFillする前にデータ構造が作成されているか、いないか
 くらいでしょうか。

バシッと理解出来るようになりたいので、わかる方宜しくお願い致します。
(GUIで作成云々ではなく、型指定されているかされていないかの話だと思いますが)

おおがかりなデータを扱う際に、インデックス番号や文字列リテラルで指定する形で行うと
インデックス番号や名前の綴りを間違えたり大文字小文字が違ってアクセスできなかったり、等々と
実際にやりたい作業とは離れた無駄なところで大量のミスが出ます。
特に多人数で開発していると頻繁に出ます。
たちの悪いことに、非常に見つけづらいです。
構造が、実行するまでは作成者の頭の中にしかない不確かなものになっているからです。
実行するまで自分の意図通りに組めているか分からないのは
プログラムが大きくなってくると特にですがかなり苦しいです。

型指定されたデータセットを使うようにすると、コーディング中、データ構造も型のように
クリアな(見通しのいい)状態で扱えるので、厳密なコーディングができ、格段にミスは減ります。

まぁ、テーブルの設計で列名がc001・c002・c003・・・とか単なる番号等になっていると、
大して変わらず、結局ミスも出るわけですが・・・。

かなりかっちりしたプログラムになるので、融通はほとんど利かなくなります。


> 違う点としてはFillする前にデータ構造が作成されているか、いないか
> くらいでしょうか。
型指定していなくても、「Fillする前に」予め構造を定義しておくことはできますから、
違うのは、「開発中に構造が見えるかどうか」、という点かと。
こどさん、回答ありがとう御座います。

> (GUIで作成云々ではなく、型指定されているかされていないかの話だと思いますが)
型指定を行えるクラスを作成する為のGUIになるんですね。

まず型指定って string str; を例にすると str には文字列を入れることを指定する。
って事で理解しています。これを前提に下記を書いています。
(勉強不足ですみません。間違っていたらご指摘をお願い致します。)


型指定って観点で見ていませんでした。
それと今は多人数ではやっていないのでインデックス番号や文字列リテラルで指定する方法でも
問題ありませんでした。

型指定の観点で考えるとメリットが見えて来ました。
 DataSetを返却するメソッドを作る時に
  型指定をしない場合、コメントや資料で内部構造がわかるものが必要になるが
  型指定をする場合、構造が決まっているので特に必要ない。

  これはこのメソッドを利用するときにメンバがわからないとバグ以前に何も出来ない。

これで件名のメリットについて理解できたつもりでいます。
ありがとう御座いました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板