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

发布于 2024-11-30 14:05:48 字数 753 浏览 0 评论 0原文

我有一个数据表,其中有

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]);
                }
            }
        }

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

I have one datatable which has

DataTable:

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

Now I want to remove the Row which has the SeqNo "3".

Now I am doing like this in GridView RowCommand Event:

    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]);
                }
            }
        }

But without loops, How to remove the row based on this condition?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

暖树树初阳… 2024-12-07 14:05:48

尝试

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

try

DataRow[] rows = DTItem.Select(" SeqNo = " + SeqNo );
rows[0].Delete();
不羁少年 2024-12-07 14:05:48

试试这个:

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

Try this:

DataRow[] rows = DTItem.Select("SeqNo = " + SeqNo);
foreach (DataRow row in rows) {
    DTItem.Rows.Remove(row);
}
初吻给了烟 2024-12-07 14:05:48

如果您确定该行仅出现一次且绝对出现一次,您可以按如下方式实现

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

If you are sure that there is only one and definitely one occurrence of the row you can achieve that as following

dt1.Rows.Remove(dt1.Select("SeqNo= 3")[0]);
压抑⊿情绪 2024-12-07 14:05:48

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

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

Another option is to use DataView instance.

//Set sort key and order
 DTItem.DefaultView.Sort = "SeqNo";
 DTItem.DefaultView.Delete(DTItem.DefaultView.Find(2));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文