读书人

DataTable 使用 delete() 循环删除行的

发布时间: 2012-04-10 21:03:56 作者: rapoo

DataTable 使用 delete() 循环删除行的问题
DT 是表 有id 列

C# code
                string[] id = new string[] { "11", "13" };                for (int i = 0; i < DT.Rows.Count; i++)                {                    for (int j = 0; j < id.Length; j++)                    {                        if (DT.Rows[i]["id"].ToString() == id[j])                        {                            DT.Rows[i].Delete();  // 不要使用 Remove(DT.Rows[i])                        }                    }                }               //这里也不许+  DT.AcceptChanges() 因为还要提交


以下是:异常

未处理 System.Data.DeletedRowInaccessibleException
Message="不能通过已删除的行访问该行的信息。"
Source="System.Data"





[解决办法]
int iDtRowsCount;
string[] id = new string[] { "11", "13" };
for (int j = 0; j < id.Length; j++)
{
iDtRowsCount = DT.Rows.Count;
for (int i = 0; i < iDtRowsCount ; i++)
{

if (DT.Rows[i]["id"].ToString() == id[j])
{
DT.Rows[i].Delete(); // 不要使用 Remove(DT.Rows[i])
break;
}
}
}
//这里也不许+ DT.AcceptChanges() 因为还要提交

读书人网 >C#

热点推荐