C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

データの復活!

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■92662 / inTopicNo.1)  データの復活!
  
□投稿者/ 犬夜叉 (23回)-(2019/10/18(Fri) 15:22:24)

分類:[.NET 全般] 

DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("Name");

dt.Rows.Add(1, "ABC");
dt.Rows.Add(2, "DEF");
dt.AcceptChanges();

dt.Rows.Remove(dt.Rows[0]);
dt.RejectChanges();

データが復活すると思ったら
ID Name
2 'DEF'
消えたままでした。
なぜ?
しかも
dt.GetChanges() はNull でした。
削除された情報が入っっているんじゃないの??

教えてください。

引用返信 編集キー/
■92665 / inTopicNo.2)  Re[1]: データの復活!
□投稿者/ Hongliang (902回)-(2019/10/18(Fri) 15:29:00)
DataRowCollection::Removeではなく、DataRow::Deleteメソッドを使用してください。
dt.Rows[0].Delete();
DataRow::DeleteメソッドはDataRowCollection::Removeとは違って、コレクションからは取り除かず、単にその行の状態(DataRow::RowState)をDeletedに変更するものです。
コレクションには残ってるので、RejectChanges()で元の状態に戻せることになります。
引用返信 編集キー/
■92667 / inTopicNo.3)  Re[2]: データの復活!
□投稿者/ 犬夜叉 (25回)-(2019/10/18(Fri) 15:43:26)
No92665 (Hongliang さん) に返信
ありがとうございました。

なるほど、納得しました。

ありがとうございました。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ