今天,我的一个学生,用一段代码问我怎么样能将DataTable中的一行删除出去,当时我不是很在意的让他用DataRow.Delete()方法。但没过多久我的学生过来跟我说Delete方法删除之后,DataTable.Rows.Count的值没变,删之前是多少,删除之后还是多少,删除时也没有报什么错误,调试的时候用DataSet查看器又会报错,这是怎么回事呢????
我看了一眼他的代码,发现他想删除行的DataTable是从数据库中读取出来的,是利用SalDataAdapter.Fill()方法取出来的。
当DataTable与 DataAdapter 和关系型数据源一起使用时,用 DataRow 的 Delete 方法移除行Delete 方法只是在 DataSet 或 DataTable 中将行标记为 Deleted,而不会移除它。而 DataAdapter 在遇到标记为 Deleted 的行时,会执行其 DeleteCommand 方法以在数据源中删除该行。然后,就可以用 DataTable中的AcceptChanges 方法永久移除该行。