DataGrid和DataTable中删除行的问题。
for(int i=0;i<newDt.Rows.Count;++i)
{
DataRow dr = newDt.Rows[i];
ProductsClass p = new ProductsClass();
p.ID=int.Parse(dr[0].ToString());
p.ClassID=int.Parse(dr[1].ToString());
p.Name=dr[3].ToString();
MessageBox.Show("行" + dr[0].ToString() + ": 状态:" + dr.RowState.ToString());
switch(dr.RowState)
{
case(DataRowState.Added):
//增加一个新行或者保存一个旧行。
SqlDataProvider.Instance.UpdateProductClass(p,ProductsClass.ClassType.SmallClasss);
break;
case(DataRowState.Modified):
SqlDataProvider.Instance.UpdateProductClass(p,ProductsClass.ClassType.SmallClasss);
break;
case(DataRowState.Deleted):
SqlDataProvider.Instance.DeleteProductsClass(p.ID,ProductsClass.ClassType.SmallClasss);
break;
//删除一个行
}
dr.AcceptChanges();
}
现在的问题是当我用newDt.Rows[10].Delete()方法删除行后,再没有调用AcceptChanges之前遍历DataTable的rows集合,根本找不到已经被删除的行。所以也没有办法得到RowState.Deleted这样的状态,从而没有办法在数据库中删除已经在DataTable中删除的行了。这是什么原因?