gpt4 book ai didi

c# - 从数据集中的数据表中删除一行

转载 作者:行者123 更新时间:2023-12-02 08:52:58 26 4
gpt4 key购买 nike

我有一个数据集,里面有几个数据表。我在 ListView 中显示数据表(当我编写代码时我不知道数据绑定(bind))。无论如何,我想从数据集中的数据表中删除行。

我已经尝试过这个:

foreach (DataRow row in dsData.Tables["Table1"].Rows)
{
//find the row that contains the username I'm after
if (item.SubItems[2].Text == row["LoginName"].ToString())
{
dsData.Tables["Table1"].Rows.Remove(row); //<- main code of interest
}
}

我也尝试过

dsData.Tables["Table1".Rows.Delete(row);

我遇到的问题是,当您删除一行时,我收到异常:

集合已修改;枚举操作可能无法执行。

据我了解,这是因为当您从 ListView 中删除一行时,该行下面的行会向上移动并导致所有这些麻烦。代码本身执行了它应该执行的操作,但是当您运行它时看到该异常并不好。

我打算用 DataGridView 重写整个类,但如果可能的话我宁愿更正这一行:)。

编辑:我什至不确定 DataGridView 是否能解决问题。

最佳答案

将循环更改为向后计数的 for 循环,这样您就不会收到该消息。

for(int i = dsData.Tables["TAble1"].Rows; i > 0; i--)
{
if(item.SubItems[2].Text == dsData.Tables["Table1"].Rows[i - 1]["LoginName"].ToString())
dsData.Tables["Table1"].Rows.Remove(i - 1)
}

关于c# - 从数据集中的数据表中删除一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7255345/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com