У меня есть DataTable, который я заполнил с помощью метода Dataset.ReadXML(). Я пытаюсь программно определить максимальные длины полей для каждого столбца в datatable. Значение MaxLength для всех моих столбцов всегда равно -1.
Любые мысли или примеры того, как определить правильную максимальную длину? возможно, основываясь на фактических данных в таблице? (Datatable может находиться в 25 столбцах на 200 000 строк)
С# 2.0
Я не совсем понимаю, каковы ваши цели - что вы пытаетесь выяснить? Количество байтов данного столбца будет использоваться (например, 4 для INT, 8 для BIGINT и т.д.) Или фактическая максимальная максимальная длина, например. все строки в столбце "ColA"?
Что касается INT и других числовых и булевых типов - те имеют фиксированную системную длину - проблем там нет.
Если ваш XML не имеет схемы (XSD файл), которая ограничивает длину строк, поля строки из XML могут быть любой длины, действительно, поэтому, после их чтения, ваш DataTable не может действительно знать, какая заданная максимальная длина может быть.
Все, что вы можете сделать, это перебрать все строки в вашем DataTable и определить текущую длину строк и получить максимальную длину текущей длины в качестве вашей системы отсчета.
Помогает ли это вообще?
Марк
Я считаю, что это DataSet.DataTable.Columns [0].MaxLength