- PR -

DataSetの生成についての疑問

投稿者投稿内容
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2005-02-11 21:56
msoです。


VB.NETでC/Sのシステムを作り初めて半年ほどが
経っていますが、当初からの疑問がいまだに解決しないため
教えてください。

フォームデザイン画面にして、
データ(A)→データセットの生成(G)
とやってデータセットを作成する方法システムを作っています。

当初はなんでこういうことをやるのか?と周りに聞いたのですが、
全員がわからずどっかの研修を受けた際に”こうやるものだ”と
言われたそうです。
そのときはいつか何か便利なことがあるはずとやってきたのですが、
今のところあまり便利だと感じたことがありません。

個人的にはPrivateでDataSetを宣言して、DataColumnsはLoad時に
対応しているほうが楽なのです。
#個人的に楽だから一人で勝手なことはやっていませんよ

で、上記のデータセットの生成は何が便利なのか教えていただきたいです。
ものすごい基本的なことではあると思いますが、よろしくお願いします。
中博俊
ベテラン
会議室デビュー日: 2004/10/17
投稿数: 91
お住まい・勤務地: 大阪市
投稿日時: 2005-02-11 22:13
型等が確定することです。

row["abc"]
これって実行時にしかabcがあるかわかりませんが、

row.abc
これは既にコンパイル時に存在することが確定しています。
xsdの裏に隠れているソースがあります。一度それを見てみてください。
かなりの量のソースをVisual Studioが出力してくれていますよ。(^^
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2005-02-12 00:38
msoです。

引用:

中 博俊さんの書き込み (2005-02-11 22:13) より:
型等が確定することです。

row["abc"]
これって実行時にしかabcがあるかわかりませんが、

row.abc
これは既にコンパイル時に存在することが確定しています。
xsdの裏に隠れているソースがあります。一度それを見てみてください。
かなりの量のソースをVisual Studioが出力してくれていますよ。(^^



んー、やっぱり実行する前に型が分かるってことが一番わかりやすいメリットなんですよね。

個人的にはDataSetの中にあるDataTableに対してやりたいことが出来ないことが
多いので微妙に使いづらいです。
おそらくは私がまだ使いこなせていないからなんでしょうか??

世間ではDataSetってやっぱり使い易いものなんですよね?
Kazuki
ぬし
会議室デビュー日: 2004/10/13
投稿数: 298
投稿日時: 2005-02-12 12:03
引用:

msoさんの書き込み (2005-02-12 00:38) より:
個人的にはDataSetの中にあるDataTableに対してやりたいことが出来ないことが
多いので微妙に使いづらいです。
おそらくは私がまだ使いこなせていないからなんでしょうか??


具体的にどんなことができないんですか??
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-02-12 19:53
引用:

msoさんの書き込み (2005-02-11 21:56) より:

フォームデザイン画面にして、
データ(A)→データセットの生成(G)
とやってデータセットを作成する方法システムを作っています。


個人的にはPrivateでDataSetを宣言して、DataColumnsはLoad時に
対応しているほうが楽なのです。


 私はフォームに追加するのではなく、xsdを作っています。それをprivateで宣言。
_________________
karajan
ベテラン
会議室デビュー日: 2002/07/05
投稿数: 89
投稿日時: 2005-02-12 22:38
メリットですが、カラムにアクセスする場合のパフォーマンスは、
Columnオブジェクト <- 列インデックス <- 列名
になるようです。
特に列名とColumnオブジェクトの比較では、約2倍の差が出るとのこと(プログラミングADO.NET [日経BPソフトプレス]より)。
VSが自動生成してくれる型付データセットはカラムのアクセスにColumnオブジェクトを使用しているので、それもメリットになるかと思われます。
自分でソース書く場合の保守性は、上記パフォーマンスの逆になるでしょうから。
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2005-02-13 00:09
msoです。

引用:

Kazukiさんの書き込み (2005-02-12 12:03) より:
引用:

msoさんの書き込み (2005-02-12 00:38) より:
個人的にはDataSetの中にあるDataTableに対してやりたいことが出来ないことが
多いので微妙に使いづらいです。
おそらくは私がまだ使いこなせていないからなんでしょうか??


具体的にどんなことができないんですか??




Nullの値を入れることが出来なかったりしますよね?
あと、DataTableの値をうまくセット出来なかったり・・・(コレは私の知識不足だと思います)

引用:

>Jittaさん
私はフォームに追加するのではなく、xsdを作っています。それをprivateで宣言。


なるほど。
まったくやっていませんでした。

引用:

>karajanさん
メリットですが、カラムにアクセスする場合のパフォーマンスは、
Columnオブジェクト <- 列インデックス <- 列名
になるようです。


んーっと、つまり早くなると言うことなのでしょうか???
karajan
ベテラン
会議室デビュー日: 2002/07/05
投稿数: 89
投稿日時: 2005-02-13 01:15
速くなるということです。

あと、Null値がセットできることがメリットということですが、その列にNull値がセットできないってことは、元になるDBのテーブルの該当列がNullを許可していないからだと思いますが(VSが調べて該当列のAllowDBNullをFalseにしてます)、その場合に自前で作ったデータセットにNullがセットできるというのは、メリットとは思えないのですが。

スキルアップ/キャリアアップ(JOB@IT)