从DataTable中删除包含值的行

时间:2014-06-06 08:53:37

标签: c# .net winforms c#-4.0 c#-3.0

我希望列CtryCode等于" MM"删除。这个逻辑上面没有这样做吗?

if (dataTableCopy.Rows[index]["CtryCode"].ToString().Trim().ToUpper().Contains("MM"))
{
    response.DataTable.Rows.RemoveAt(index + offset--);
}

断点没有达到上面的响应语句,我可以在执行此操作后看到MM行,奇怪吗?请帮忙。

3 个答案:

答案 0 :(得分:6)

要删除包含值的列,请尝试此

DataRow[] result = dt2.Select("CtryCode = 'mm'");
foreach (DataRow row in result)
{
    if (row["CtryCode"].ToString().Trim().ToUpper().Contains("MM"))
    dt2.Rows.Remove(row);
}

答案 1 :(得分:1)

如果你知道该行的索引,你可以删除这样的行,

for(int i=0;i<dataTableCopy.Rows.Count-1;i++)
   {        
        if (dataTableCopy.Rows[i]["CtryCode"].ToString().Trim().ToUpper().Contains("MM"))
    {
         dataTableCopy.Rows[i].Delete();
    }
  }

答案 2 :(得分:0)

请找到代码:

int id=98;
DataTable dt = new DataTable();
foreach (DataRow row in dt.Rows)
{
    if(row["Id"].ToString().Trim().Contains(id.ToString()))
        dt.Rows.Remove(row);
}