【发布时间】:2012-03-19 09:52:25
【问题描述】:
我在使用 DataTable 时发现了这个错误。
我在 DataTable 中添加了一个主键列,然后在该表中添加了一行,删除了该行,然后在表中添加了具有相同键的行。这行得通。当我尝试调用RejectChanges() 时,我得到ConstraintException 说该值已经存在。
示例如下:
var dataTable = new DataTable();
var column = new DataColumn("ID", typeof(decimal));
dataTable.Columns.Add(column);
dataTable.PrimaryKey = new [] {column };
decimal id = 1;
var oldRow = dataTable.NewRow();
oldRow[column] = id;
dataTable.Rows.Add(oldRow);
dataTable.AcceptChanges();
oldRow.Delete();
var newRow = dataTable.NewRow();
newRow[column] = id;
dataTable.Rows.Add(newRow);
dataTable.RejectChanges(); // This is where it crashes
我认为由于行被删除,不应该抛出异常(不违反约束,因为行处于删除状态)。对此我能做些什么吗?任何帮助表示赞赏。
【问题讨论】: