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是请回答您的问题?