DataTable удаляет только одну строку? - PullRequest
0 голосов
/ 30 января 2019

Может кто-нибудь сказать мне мою ошибку?У меня есть две таблицы, объединенные в одну.Их отличает один столбец, называемый источником.(ожидаемый, найденный) Я не хочу удалять все равные строки ... Но в случае удаления обеих строк будет удалена только строка i-1 ...

for (int i = 0; i < tbl.Rows.Count; i++)
            {
                try
                {

                    if (tbl.Rows[i].ItemArray.Contains(Constants.VALUE_SOURCE_FOUND) && tbl.Rows[i - 1].ItemArray.Contains(Constants.VALUE_SOURCE_EXPECTED))
                    {

                        var founded = (tbl.Rows[i].ItemArray).ToArray();
                        var expected = (tbl.Rows[i - 1].ItemArray).ToArray();


                        for (int u = 0; u < founded.Length; u++)
                        {
                            if (founded[u].ToString() == Constants.VALUE_SOURCE_FOUND)
                            {
                                founded = founded.Where(w => w != founded[u]).ToArray();        
                                expected = expected.Where(w => w != expected[u]).ToArray();     
                            }
                        }


                        if (founded.ToString() == expected.ToString())
                        {
                            tbl.Rows[i - 1].Delete();       
                            tbl.AcceptChanges();
                            tbl.Rows[i].Delete();           
                            tbl.AcceptChanges();
                        }

                    }
                }
                catch { }
            }
        }


        return tbl;

1 Ответ

0 голосов
/ 30 января 2019

Это работает?

tbl.Rows[i].Delete();
tbl.AcceptChanges();

tbl.Rows[i-1].Delete();

tbl.AcceptChanges();

i = i - 2;

Насколько я знаю, удалить только "помечает" строку как подлежащую удалению, вы должны сначала зафиксировать ее.При втором вызове вы фиксируете первый, но второе удаление никогда не выполняется для таблицы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...