Построение списка идентификаторов из столбца ID DataGridView в виде массива целых чисел для фильтра запросов PostgreSQL дБ - PullRequest
0 голосов
/ 08 апреля 2020

В проекте C# WinForms, который подключается к базе данных PostgreSQL с использованием инфраструктуры Npg sql, я перебираю таблицу данных DGV и получаю идентификаторы записей для строк, в которых есть ячейка, соответствующая строке поиска.

Вот код, который делает это:

string searchText = txtSearchCatsGrid.Text.ToUpper();
int[] idArray = new int[] { };

DataTable dt = ((DataTable)dgvCategories.DataSource);
string cellValue;
int rowIndex;
int columnIndex;
int arrayIndex = 0;

for (rowIndex = 0; rowIndex <= dt.Rows.Count - 1; rowIndex++)
{
    for (columnIndex = 0; columnIndex <= dt.Columns.Count - 1; columnIndex++)
    {
        cellValue = dt.Rows[rowIndex][columnIndex].ToString();

        if (searchText == cellValue.ToUpper())
        {
            idArray[arrayIndex] = dt.Rows[rowIndex][0];
            arrayIndex++;
        }
    }

    if (!string.IsNullOrEmpty(idToAddToList) && !tempIdList.Contains(idToAddToList)) tempIdList += idToAddToList + ",";

}

Мне нужно передать массив целых чисел (список идентификаторов записей) в функцию, которая запрашивает базу данных PostgreSQL, используя это перечислять в качестве фильтра в предложении WHERE.

Моя проблема в том, что я не могу понять, как добавить идентификаторы в массив, idArray.

Поскольку код сейчас, dt.Rows[rowIndex][0] имеет красную волнистую линию подчеркивания, которая гласит: «Не удается неявно преобразовать тип« объект »в« int »(Вы пропустили приведение?)»

«Вы пропустили приведение» побудило меня попробовать приведите dt.Rows[rowIndex][0] к int, используя (int)dt.Rows[rowIndex][0], который скомпилирован и запущен, но когда я запускаю его, я получаю исключение "Индекс вне диапазона" в (int)dt.Rows[rowIndex][0], когда я иду мимо этого (используя F11). Хотя массивы начинаются с нуля, я попытался инициализировать arrayIndex как 1, но я получил то же исключение «Индекс вне диапазона».

Я не могу использовать список <>, как PostgreSQL / Npg sql не могу с этим работать.

...