2011-03-25 7 views
0

Единый модуль импорта данных:
Я читаю данные из любого из 6 типов источников данных (CSV, Active Directory, SQL, Access, Oracle, Sharepoint) в datatable.Манипулировать значениями в datatable?

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

Делать это кажется простым исключением того, что пользователь должен иметь возможность заменить некоторые поля в DataTable значениями из полей в базе данных целевой SQL (Lookups)

Я действительно хотел бы сделать все вышеперечисленное к объект DataTable перед отправкой на целевом databes, но не может, повторить нЕ использовать Linq, так как структуры таблицы (источник и цель неизвестны и не представляет конкретный бизнес-объект

ТЛ;. др мне нужно сделать данные трансформации на любой тип данных. Это хороший способ (Нет Linq!)

EDIT: исходные и целевые таблицы отличаются по своей структуре.

+0

Имеет ли каждый источник одинаковые столбцы? Если да, то в чем проблема с обновлением DataRows? – kd7

+0

Хороший способ - напишите свою логику уровня DB + ADO.NET. –

+0

@LexRama: Это точка моего поста - я пытаюсь найти хороший способ сделать именно это. Ваш комментарий похож на ответ: [Как купить лучший ноутбук? Ответ: Купить ноутбук.] – callisto

ответ

0

В итоге я написал класс для каждого типа базы данных всей части одного интерфейса и использовал GenericConnection на основе DbConnection для разных типов источников.

Я сломал процесс вверх в:

  1. Импорт
  2. Transform
  3. Write этапов, которые могут быть сохранены и вновь открыты для повторного использования или редактирования.

Трансформирование часть состоит из:

  1. Кастинг
  2. вычислений (строка, INT, десятичный, дата, BOOL), как сложение, вычитание, Разделить, Multiply, И, ИЛИ, подстроку, замените
  3. подстановочных против других таблиц
  4. прямого копирования

Преобразование с в очереди, чтобы один столбец данных мог пройти через любую сумму, чтобы соответствовать цели, прежде чем записываться в цель.

Смежные вопросы