Определение длины поля столбца в таблице данных

2

У меня есть DataTable, который я заполнил с помощью метода Dataset.ReadXML(). Я пытаюсь программно определить максимальные длины полей для каждого столбца в datatable. Значение MaxLength для всех моих столбцов всегда равно -1.

Любые мысли или примеры того, как определить правильную максимальную длину? возможно, основываясь на фактических данных в таблице? (Datatable может находиться в 25 столбцах на 200 000 строк)

С# 2.0

Теги:
datatable

2 ответа

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

Я не совсем понимаю, каковы ваши цели - что вы пытаетесь выяснить? Количество байтов данного столбца будет использоваться (например, 4 для INT, 8 для BIGINT и т.д.) Или фактическая максимальная максимальная длина, например. все строки в столбце "ColA"?

Что касается INT и других числовых и булевых типов - те имеют фиксированную системную длину - проблем там нет.

Если ваш XML не имеет схемы (XSD файл), которая ограничивает длину строк, поля строки из XML могут быть любой длины, действительно, поэтому, после их чтения, ваш DataTable не может действительно знать, какая заданная максимальная длина может быть.

Все, что вы можете сделать, это перебрать все строки в вашем DataTable и определить текущую длину строк и получить максимальную длину текущей длины в качестве вашей системы отсчета.

Помогает ли это вообще?

Марк

  • 0
    Ваш ответ подтверждает то, что я нашел. Я думаю, я надеялся, что был другой ответ .. Ну, хорошо. Спасибо
  • 0
    Конечная цель состоит в том, чтобы определить максимальную длину строк, возвращаемых через веб-сервис, а затем создать сценарий SQL, который бы создавал эквивалентные поля в новой таблице SQL.
Показать ещё 1 комментарий
2

Я считаю, что это DataSet.DataTable.Columns [0].MaxLength

  • 0
    Я предполагаю, что это может быть DataSet.DataTables ["tableName"]. Columns ["columnName"]. MaxLength.
  • 0
    За исключением того, что MaxLength всегда кажется -1 (для неограниченного?)
Показать ещё 3 комментария

Ещё вопросы

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