Здравствуйте. Столкнулся с такой проблемой и пока не смог ее решить, по поиску тоже ничего не нашел нужного (если кто-то наткнется на похожую тему, буду благодарен ссылке).
Собственно в чем дело:
Есть excel таблица, и есть C# код для поиска по этой таблице нужной строки.
Вот сам код:
По нему должен проходить поиск в таблице "bbb" по значению из переменной "aaa".
Столбец из таблицы берется под буквой T (20й по счету).
Когда выполняется проект, на данном коде выдается ошибка:
"Выполнение действия CSharp Owncode индекс находился вне границ массива".
Однако, если через ПМ открыть таблицу, нажать "просмотр содержимого", а потом закрыть и запустить еще раз код, то все идет как надо, и находит ту строку, которую надо.
Может я что-то не так делаю, но данный код хорошо зарекомендовал себя, когда поиск проводил по первым столбцам.
Версия 5.9.9.1
Собственно в чем дело:
Есть excel таблица, и есть C# код для поиска по этой таблице нужной строки.
Вот сам код:
Код:
var textContains = project.Variables["aaa"].Value;
var sourceTable = project.Tables["bbb"];
lock(SyncObjects.TableSyncer)
{
for(int i=0; i < sourceTable.RowCount; i++)
{
var cells = sourceTable.GetRow(i).ToArray();
if (cells[19].Contains(textContains))
{ return i;
}
}
}
return "No info!";
Столбец из таблицы берется под буквой T (20й по счету).
Когда выполняется проект, на данном коде выдается ошибка:
"Выполнение действия CSharp Owncode индекс находился вне границ массива".
Однако, если через ПМ открыть таблицу, нажать "просмотр содержимого", а потом закрыть и запустить еще раз код, то все идет как надо, и находит ту строку, которую надо.
Может я что-то не так делаю, но данный код хорошо зарекомендовал себя, когда поиск проводил по первым столбцам.
Версия 5.9.9.1