Цикл FOR удаляет все строки, при проверки на схожесть строк
Нужно чтобы при проверке удалились те строки, которых нет в globalDataMySQL и есть в globalDataExcel, здесь получается так, что удаляются все строки из globalDataExcel.
Понимаю, что это из-за того, что условие выполняется при любом неправильном значении и соответственно цикл не успевает проверить всю таблицу. Но как это дело исправить — I don't know.
for (int i = 0; i < globalDataTableExcel.Rows.Count; ++i)
{
if (globalDataTableExcel.Rows[i].RowState != DataRowState.Deleted)
{
for (int j = 0; j < globalDataTableMySQL.Rows.Count; ++j)
{
if(globalDataTableExcel.Rows[i][0].ToString() != globalDataTableMySQL.Rows[j][0].ToString())
{
globalDataTableExcel.Rows[i].Delete();
++minusSlov;
break;
}
}
}
}
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Внутренний цикл должен выглядеть так:
bool found = false;
for (int j = 0; j < globalDataTableMySQL.Rows.Count; ++j)
{
if(globalDataTableExcel.Rows[i][0].ToString() == globalDataTableMySQL.Rows[j][0].ToString())
{
found = true;
break;
}
}
if(!found)
{
globalDataTableExcel.Rows[i].Delete();
++minusSlov;
}