DataTable dt = new DataTable();
DataRow[] dr;
dt.Columns.Add();
dt.Columns.Add();
dt.Rows.Add(1, 1);
dt.Rows.Add(2, 2);
dt.Rows.Add(3, 3);
dr = dt.Select();
dr[1].Delete();
foreach (DataRow x in dt.Rows)
MessageBox.Show(x[0] + " " + x[1]);
MessageBoxに「1 1」と「3 3」と表示されます。なぜこうなった?私は、DataTableの値を保持するDataRow []だけを扱うDataTableを操作しませんでした。では、なぜDataTableの値も変更されましたか?誰かがこれを説明できますか?DataTable.Select()を使用している間に起きている奇妙なこと
DataTableを元の値に戻すようにAcceptChangesを使用しています...ありがとう:) – Gerald
@Gerald、AcceptChangesはこれをしません。この回答はあなたの質問には実際には当てはまりません。 –
はい、申し訳ありません。質問を完全に読まなかった。 –