Как ограничить имя столбца 2 DataTable - PullRequest
0 голосов
/ 28 ноября 2018

Я ищу самый простой способ ограничения двух DataTable для имен столбцов ...

здесь мой код:

DataTable productsAllColums = ....;
DataTable productsJustColumnsToView = ...;
// they both imported from db and both have same stucture

                for (int i = 0; i < productsAllColums.Columns.Count; i++)
                {
                    for (int k = 0; k < productsJustColumnsToView.Columns.Count; k++)
                    {
                        if (productsAllColums.Columns[i].ColumnName == productsJustColumnsToView.Columns[k].ColumnName)
                            break;
                        else
                            productsAllColums.Columns.RemoveAt(i);
                    }
                }

Это решение на самом деле не работает ...

ОБНОВЛЕНИЕ еще пример:

DataTable productsAllColums имеет столбцы (имена): col1, col2, col3, col4, col5 .... ab до col60

DataTable productsJustColumnsToView имеет (имена) col3, col 14, col22

ВСЕ мои данные уже находятся в productsAllColums, поэтому моя идея ... просто удалите столбец, который клиент не хочет видеть; -)

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

У меня есть решение сейчас:

DataTable productsAllColums = ....;
DataTable productsJustColumnsToView = ...;

bool columnOK;

for (int i = productsAllColums.Columns.Count - 1; i >= 0; i--)
{
    columnOK = false;
    for (int k = 0; k < productsJustColumnsToView.Columns.Count; k++)
    {
        if (productsAllColums.Columns[i].ColumnName == productsJustColumnsToView.Columns[k].ColumnName)
        {
            columnOK = true;
            break;
        }
    }
    if (!columnOK)
        productsAllColums.Columns.RemoveAt(i);
}

Я действительно надеюсь на более элегантное решение ... но теперь оно тоже работает очень хорошо: -)

0 голосов
/ 29 ноября 2018

Чтобы иметь таблицу с ограниченным количеством столбцов, вы можете использовать метод DataView.ToTable .Но если вам не нужны другие данные, может, стоит рефакторинг, чтобы не выбирать их в первую очередь?

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