DataTable没有获得更新?

时间:2014-04-30 18:17:13

标签: c# asp.net datatable

我有一个DataTable,其中一列填充了文本文件中的单词列表,我创建了一个方法来读取字符串,如果该字符串已创建,则必须删除该行,但问题是{ {1}}没有获得更新。

DataTable

2 个答案:

答案 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);
        }
    }