Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中从DataTable中删除DataRow#_C#_Datatable_Dataset - Fatal编程技术网

C# 在c中从DataTable中删除DataRow#

C# 在c中从DataTable中删除DataRow#,c#,datatable,dataset,C#,Datatable,Dataset,我有一个名为EventDBDataSet的数据集,其中有一个名为Contacts的数据表。我试图从DataTable中删除一行,但它不工作,并且不会引发任何错误。关于这一点,我尝试了一些堆栈溢出解决方案,但没有一个对我有效。下面是从DataTable中删除行的代码 public void deleteContact(Int16 contactId) { EventDBDataSet eventDBDataSet = new EventDBDataSet(); EventDBDat

我有一个名为
EventDBDataSet
的数据集,其中有一个名为
Contacts
的数据表。我试图从DataTable中删除一行,但它不工作,并且不会引发任何错误。关于这一点,我尝试了一些堆栈溢出解决方案,但没有一个对我有效。下面是从DataTable中删除行的代码

public void deleteContact(Int16 contactId)
{
    EventDBDataSet eventDBDataSet = new EventDBDataSet();
    EventDBDataSetTableAdapters.ContactsTableAdapter contactsTableAdapter =
        new EventDBDataSetTableAdapters.ContactsTableAdapter();

    contactsTableAdapter.Fill(eventDBDataSet.Contacts);

    EventDBDataSet.ContactsRow contactsRow = eventDBDataSet.Contacts.FindBycontactId(contactId);

    eventDBDataSet.Contacts.RemoveContactsRow(contactsRow);

    eventDBDataSet.Contacts.AcceptChanges();

    contactsTableAdapter.Update(eventDBDataSet.Contacts);

}

这里缺少什么?

如果从集合中删除一个项目,则该集合已更改,您无法继续枚举它

相反,请使用For循环,例如:

public void RemoveRow()
    {
        DataTable dt = new DataTable();

        foreach (var row in dt.Select())
        {
            if (row["ID"].ToString().Equals("NAME"))
            {
                dt.Rows.Remove(row);
                dt.AcceptChanges();
            }
        }
    }

我没有得到ant错误或任何输出。数据表在执行删除后未更新。已更新对我有效的答案,请尝试一下。是否确实有效??EventDBDataSet.ContactsRow没有名为Select()的方法。我确保它适用于我,Select()返回所有DataRow对象的数组。请使用我添加的编辑,这在VS 2019中正常工作。您是否检查过EventDBDataSet.ContactsRow是否为DataTable类型?您是否仍然需要它?@RandomStuff是请回答您的问题?