- - PR -
.net DataSet内のテーブルの値の退避方法
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-08-21 15:59
お世話になります。
DataSet内のテーブルの構造とデータを退避しておいて、Datasetのテーブルの内容が ユーザに書き換えられてもキャンセル処理によって変更をキャンセルしたいです。 以下のように byref pDatasetTable As Data.DataTable wkTable = pDatasetTable '←パラメータで受け取ったDatasetのテーブルインスタンス wkTableBackUp = pDatasetTable'←バックアップ ・ ・ ・ wkTable のデータ内容を変更(画面処理など)・・・@ ・ ・ キャンセルして@の処理をキャンセルしたい(キャンセルが無ければそのまま) pDatasetTable = wkTableBackUp ・・・A ↑のようにしても結局 pDatasetTable wkTable wkTableBackUp の中身はすべて編集後の値で同一になってしまいます。 このようなデータの退避は データを配列か何かに退避して、ループ処理などで元にもどすほか方法がないのでしょうか? ご教授願います。 |
|
投稿日時: 2007-08-21 16:43
pDatasetTable,wkTable,wkTableBackUpはデータセットのインスタンスそのものではなく、インスタンスを参照する参照型の変数です。ですので、
wkTable = pDatasetTable とやってもpDatasetTableが参照しているインスタンスをwkTableでも参照するだけで、データセットのインスタンスが別にできるわけではありません。 同じ内容のインスタンスを作りたい場合はCopy()メソッドを使うと良い…かな? http://msdn2.microsoft.com/ja-jp/library/kax0zhe7(VS.80).aspx |
|
投稿日時: 2007-08-21 17:31
RejectChanges
|
|
投稿日時: 2007-08-21 18:25
回答ありがとうございます。
Copy()メソッドの存在は知っていたのですが、以前ちょっとやってみたら うまくいかなかったのですが、改めてやってみたらうまくいきました。 ありがとうございました。 |
1