C# удалить строку со значением из таблицы

Регистрация
23.03.2015
Сообщения
1 216
Благодарностей
748
Баллы
113
Поскольку происходит какая-то чертовщина, попробую описать подробно.
В текстовом файле лежат данные в формате Логин:пароль, этот файл привязана к таблице в шаблоне. C# берёт первую строку из таблицы, раскладывает её в переменные и записывает в конец таблицы. Дальше идёт работа шаблона. В конце шаблона по результатам надо либо оставить эту строку в таблице либо удалить.
Для этих целей на ковырял на форуме вот такой код:
C#:
var login = project.Variables["login"].Value;
// получаем таблицу, в которой будем искать
var sourceTable = project.Tables["accs"];
// ищем в каждой строчке в таблице
lock(SyncObjects.TableSyncer)
{
    for(int i = sourceTable.RowCount - 1; i>=0; i--)
    {
        // читаем строку из таблицы (это будет массив ячеек)
        var cells = sourceTable.GetRow(i).ToArray();
        // проверяем ячейку
        if (cells[1]!=login)
        sourceTable.DeleteRow(i);
    }
}
Но код отрабатывает некорректно. Что происходит:
Если в конце текстового файла, к которому привязана таблица, есть пустая строка, то кубик с кодом для удаления строки отрабатывает некорректно, выходит по красной линии, но при этом строка удаляется. Есть ли в конце текстового файла нету пустой строки, кубик с кодом отрабатывает корректно, выходит по зелёной линии, но удаляется не строка, а полностью очищается файл.
У меня с кодом тяжело, подскажите что я делаю неправильно?
Может подскажите какой код для удаления строки из таблицы?
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 718
Баллы
113
В конце шаблона по результатам надо либо оставить эту строку в таблице либо удалить.
и что же это за условия ?
// проверяем ячейку
if (cells[1]!=login)
sourceTable.DeleteRow(i);
этот код удаляет все строки не равные login.... так что все правильно отрабатывает.

в общем ничего не понятно. поставь задачу так что бы было понятно, что надо сделать.
 
  • Спасибо
Реакции: KolkaPetkinSyn
Регистрация
23.03.2015
Сообщения
1 216
Благодарностей
748
Баллы
113
в общем ничего не понятно. поставь задачу так что бы было понятно, что надо сделать.
Нужно удалить строку со значением login в столбце A

этот код удаляет все строки не равные login.... так что все правильно отрабатывает.
Получается, нужно убрать восклицательный знак из равенства?
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113
Нужно удалить строку со значением login в столбце A


Получается, нужно убрать восклицательный знак из равенства?
К чему лишние движения? В начале взять с удалением, а в результате работы шаблона по условию или записать в конец или "потерять" строку.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)