- 題名: DataTableのRowState.Modify
- 日時: 2005/03/24 14:30:32
- ID: 10063
- この記事の返信元:
- (なし)
- この記事への返信:
- [10074] Re[1]: DataTableのRowState.Modify2005/03/24 18:52:46
- ツリーを表示
> (列を一件一件見ていく他ないのでしょうか) と思いますが、さすがに毎回見るわけではなく、Bに適用したタイミングで その行の確定(Datatable内での。)をしてRowStateを変更しておいてあげればいいです。 で実際、しないといけない処理なんて、 単に変更がないかどうかを各列ループで検証した上で、本当に変更がないのであれば、 行に対してAcceptChangesを実行すればよいだけです。 <AをBに適用するための行ループ> <●addedやらdeletedのCASE> ・・・ 何か処理 <●「以外は値の代入」のターンのCASE> (ターンのAの行変化を適用済みのB上の行をtmprow_to_b as datarowでアクセスできるとして・・・) dim samechecker as boolean=true for each cl as datacolumn in table_b.columns if tmprow_to_b(cl.columnname,〜original)<>tmprow_to_b(cl.columnname,〜current) then samechecker=false exit for end if next '全項目同じだったら、Datatable内の変更を確定 if samechecker=true then tmprow_to_b.acceptchanges end if 端折りました。 後は何とかしてください。 (非接続で実データベース非依存って、こういうとき楽ですよね。)
分類:[ASP.NET]
DataTable A
DataTable B(Aのワーク)
同じテーブル構成です。
AとBの差分ファイルを作成することになりました。
AとBを比べて
1.内容の一部に更新があったもの
2.削除されたもの
3.追加されたもの
をファイルに出力します。
内容に変更の無い物に関してはファイルへ出力しません。
RowStateを使用しようと思ったのですが
A→Bに1件1件データを更新していく際に
(削除ならdelete、追加ならadd、以外は値の代入)
データに変更がなくても、(全く同じ値を代入しても)
RowStateがModifiになってしまいます。
これはしょうがないのでしょうか?
データに変更がないデータにはたとえ値を代入しても
Modifyじゃなく、「変更無し」のRowStateが
帰ってくるように識別したいのですが無理なのでしょうか?
(列を一件一件見ていく他ないのでしょうか)