Я пишу программу, которая генерирует одну большую таблицу информации. Таблица состоит из двух типов столбцов, столбцов, которые содержат количества, и столбцов, которые содержат свойства. Количества - это числовые значения, которые можно суммировать, свойства - это качественные значения, которые приписывают количественные значения.
Если данные находятся в таблице в базе данных, я могу написать запрос, который выбирает конкретные свойства и количества и суммирует количества, которые имеют одинаковое значение для выбранных свойств.
Пример:
Таблица:
Quanity1 Quanity2 Quanity3 Property1 Property2 Property3
12 43 12 RED Long Rough
43 23 23 Blue Short Smooth
43 90 34 RED Fat Bumpy
Запрос:
SELECT sum(Quanity1), sum(Quanity2), Property1 FROM Table Group By Property1
Результат:
Quanity1 Quanity2 Property1
43 23 Blue
55 133 Red
То, что я хочу сделать, - это дать пользователю графический интерфейс для этого, не зная, как писать запросы SQL или любой другой код в этом отношении. Например, набор списков, где они выбирают свойства и количества, которые они хотят просмотреть, и отображается таблица, в которой показаны выбранные поля с суммированными количествами. Позже я могу также захотеть добавить возможность для пользователя выполнять другие запросы SQL, например, такие действия, как фильтрация на основе определенных условий. Также я знаю, что позже мне нужно будет создавать привлекательные отчеты на основе этих пользовательских запросов.
Я очень новичок в ADO и .NET в целом. Но я думаю, что лучший способ сделать это - экспортировать мои данные в System.Data.DataTable, а затем создать интерфейс для пользователя для создания System.Data.DataView, сгенерировав строку для его свойства RowFilter. Хотя для меня не очевидно, как я могу не только фильтровать и сортировать DataTable, но и генерировать другую таблицу или представление, которое содержит только определенные столбцы из большой мастер-таблицы.
В целом это звучит как лучший вариант, или есть другой метод, который я должен рассмотреть? У кого-нибудь есть какие-то конкретные советы или предложения, как мне это реализовать? Я также задавался вопросом, будет ли что-нибудь из этого облегчено с помощью LINQ.
Обновление
Я ценю предложение использовать Access или другой доступный инструмент, но это действительно не вариант. Доступ слишком сложен для пользователей, чтобы попытаться понять, и гораздо больше, чем мне нужно на самом деле. Я бы всегда оставлял Access в качестве опции для опытных пользователей. Но я все же хотел бы настроить базовую функцию запросов, при которой пользователь выбирает нужные столбцы, а программное обеспечение автоматически создает представление / запрос, которое выбирает и суммирует соответствующие столбцы.
Помимо сложности, есть еще одна проблема, связанная с Access: существует много кликов между изменением чего-либо в моей структуре данных и просмотром изменения в отчете. Я не хочу, чтобы пользователю приходилось что-то менять, реэкспортировать для доступа, открывать другую программу, а затем открывать отчет, чтобы увидеть эффект их изменения.