Это мой первый пост в Stackoverflow.
Я читаю миллионы строк из плоского файла (через запятую) и повторяю каждую строку чтения, а затем каждый столбец каждой строки.Итерация каждого столбца позволяет выполнять определенные пользователем преобразования, значения по умолчанию, удаление специальных символов и т. Д.Текущая реализация очень эффективна.
Чтение данных выполняется партиями по 20 КБ.Когда я обрабатываю строку чтения, я запускаю вызов NewRow () для моей таблицы данных в памяти.Затем я начинаю итерацию каждого столбца, чтобы очистить их значения.Я пытаюсь свести к минимуму столько, сколько могу при обработке столбцов строк.
Моя проблема заключается в следующем.Если значение (в данном случае текст), которое читается из плоского файла, длиннее, чем MaxLength целевого DataTables DataColumn, я получаю исключение, например, когда я выдаю следующее:
dataTable.Rows.Add(newRow);
Есть лиспособ сказать ADO.Net (или моей DataTable в памяти) обрезать данные вместо того, чтобы жаловаться?
Опять же, я могу легко добавить логику в цикл, чтобы выполнить эту проверку / усечение для меня, но тевсе складывается, когда вы имеете дело с миллионами строк данных.