如何在不使用循环的情况下删除DataTable Row?

时间:2011-08-18 10:12:30

标签: c# asp.net datatable

我有一个数据表

数据表:

         SeqNo        ItemID        ItemName
        -------       ------        --------
           1            10           AAA
           2            20           BBB
           3            30           CCC

现在我要删除具有SeqNo“3”的行。

现在我在GridView RowCommand事件中这样做:

    if (e.CommandName == "Delete")
        {
            string SeqNo = e.CommandArgument.ToString();
            for (int i = 0; i < DTItem.Rows.Count; i++)
            {
                if (SeqNo == DTItem.Rows[i]["SeqNo"].ToString())
                {
                    DTItem.Rows.Remove(DTItem.Rows[i]);
                }
            }
        }

但是没有循环,如何根据这个条件删除行?

4 个答案:

答案 0 :(得分:2)

DataRow[] rows = DTItem.Select(" SeqNo = " + SeqNo );
rows[0].Delete();

答案 1 :(得分:0)

如果您确定只有一个且肯定会出现一行,您可以按照以下方式实现

dt1.Rows.Remove(dt1.Select("SeqNo= 3")[0]);

答案 2 :(得分:0)

试试这个:

DataRow[] rows = DTItem.Select("SeqNo = " + SeqNo);
foreach (DataRow row in rows) {
    DTItem.Rows.Remove(row);
}

答案 3 :(得分:0)

另一种选择是使用 DataView 实例。

//Set sort key and order
 DTItem.DefaultView.Sort = "SeqNo";
 DTItem.DefaultView.Delete(DTItem.DefaultView.Find(2));