« 【書籍】.NETエンタープライズWebアプリケーション開発技術大全〈Vol.3〉ASP.NET応用編 | メイン | 【SQL Server】Windows統合認証とSQL Server認証 »

【ADO.NET】DataSetから変更行を抽出

DataSetのGetChangesメソッドを使用すれば、
DataSetから変更行だけを抽出できます。

多階層アーキテクチャの場合にDataSetの全行を受け渡すと
システム間の転送量が多くなってしまい、性能に影響が出る場合があります。
そんな時、DataSet.GetChangesメソッドは役に立ちます。

例えば、更新ロジックの場合、以下のような使い方をすることになります。

PL層:DataSet.GetChangesで修正行のみを取得し、BL層に渡す。
BL層:受け取ったDataSetをDA層に渡す
DA層:受け取ったDataSetをxxxTableAdpater.Updateメソッドなどで更新。

ところで、xxxTableAdapter.Updateには更新後に最新の値を
DataSetに書き戻してくれる機能があります。
例えば、更新前に自動採番列に値が入っていなかったとしても、
更新後に自動採番された値をDataSetに書き戻してくれたりします。

更新後の値を全行格納されたDataSetに反映したい場合には、
DataSet.Mergeメソッドを使用すればOKです。

主キーが同じ行に対して最新の値を上書きすることができます。
(主キーがDataSetに設定されていることが前提ですが。)

dataSet1.Merge(dataSet2)

上記のように書けば、dataSet1にdataSet2の値をマージしてくれます。

【参考文献】

プログラミングMicrosoft ADO.NET

トラックバック

このエントリーのトラックバックURL:
http://www.mojao.net/mt/mt-tb.cgi/55

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)