Самый быстрый способ запустить SQL на многомерном массиве

2

Я хочу взять таблицу, представленную многомерным строковым массивом (имена столбцов в другом массиве), и использовать инструкцию SQL SELECT для получения подмножества строк.

Поймать:

  • таблица вводится пользователем (разная таблица)
  • SQL также вводится пользователем

Нужно ли:

  • Создать таблицу в SQL
  • Заполнение таблицы в SQL
  • Запросить таблицу

или это более простое решение? Например. преобразование многомерного массива в DataTable и последующее выполнение SQL на этом объекте?

  • 0
    Самый простой способ - использовать LINQ.
  • 0
    Может ли пользователь вводить LINQ в виде строки?
Теги:

2 ответа

3
Лучший ответ

Я думаю, вы могли бы использовать DataTable для этого. Он обычно используется для хранения данных, полученных из базы данных, но вы можете заполнить их вручную. Наилучшая часть - метод DataTable.Select(), который позволяет вам писать только предложение WHERE запроса и возвращать соответствующие строки.

  • 0
    Это то направление, в котором я склонялся (в сочетании с комментарием Старсиньлео). Я думал о разборе запроса на различные компоненты (SELECT, WHERE, ORDER, GROUP). <br /> После дальнейших исследований: Dynamic LINQ может быть лучшей возможностью
1

Вы можете создать собственное дерево выражений, представляющее запрос, который вводит пользователь. Так работает Линк под капотом. Если бы вы могли привести пример того, что вы пытаетесь достичь, это может помочь и тем, что вы собираетесь писать приложение в С# для веб, например.

Например, если вы позволяете своим пользователям вводить новые строки, в каком-то графическом интерфейсе к таблице, вы могли бы сделать это в datagrid и включить фильтр столбцов для достижения упомянутого выше результата?

В веб-приложении у вас может быть окно ввода над каждым столбцом. Пользователи могут вводить данные для фильтрации этого столбца.

  • 0
    Данные поступают в различных форматах (например, CSV, Tab / Return), но они преобразуются в двумерный массив. Минимальный набор необходимых функций: SELECT, WHERE, ORDER и GROUP. Тем не менее, я бы предпочел полную поддержку всех запросов SQL (включая JOIN). Проблема в том, что программное добавление таблицы каждый раз для выполнения одного запроса кажется неэффективным, сложным и медленным.
  • 0
    Это может быть, но то, что вы хотите сделать, немного сложно. Вам действительно нужна группа? Большинство из этих функций вы можете получить из коробки с помощью Datagrid, а Devexpress Grid, который мы здесь используем в работе, также поддерживает группировку.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню