我有一个DataTable
,其中一列填充了文本文件中的单词列表,我创建了一个方法来读取字符串,如果该字符串已创建,则必须删除该行,但问题是{ {1}}没有获得更新。
DataTable
答案 0 :(得分:0)
,请致电tagst.AcceptChanges();
根据文件:
When AcceptChanges is called, any DataRow object still in edit mode successfully ends its edits. The DataRowState also changes: all Added and Modified rows become Unchanged, and Deleted rows are removed.
正如@LarsTech所说,你想要像你一样重做你的循环:
for (int i = tagst.Rows.Count - 1; i >= 0; i--)
{
// ....
}
答案 1 :(得分:0)
编码的一个问题是当你删除行时 - 你需要从最后一行开始,原因非常简单。一旦删除了行中的3,10,20,将保留多少行?你为什么需要从底部开始?因为 tagst 会在删除完成后自动重新编制索引并重新排序。
但是你的 tagst.Rows.Count 已经设置好了,而且还没有刷新!
基本上,一旦您的计数器(K)命中已经删除行的数字,您将看到错误,更糟糕的是,如果您没有设置错误处理例程,您的应用程序将会崩溃。由于您没有发布有关如何创建tgst的实际代码,因此我将展示如何在数组中完成它。变量ommnited声明...... 试试这个:
for (int k=tagstArray.Count; k>0; k--)
{
s = tagstArray[k].ToString();
if(s.Contains("Jad"))
{
tagstArray[k].Remove(k);
}
}