Хотя набор данных разрешен для «заполнения» адаптера данных, я обычно вместо этого использовал DataTable, как при запросах, я ожидаю только один набор результатов.Сказав это, я бы сделал предварительный запрос к таблице, просто чтобы получить ее структуру ... что-то вроде
select whatever from yourTable(s) where 1=2
Это даст ожидаемые столбцы результата, когда вы выполните
DataTable myTable = new DataTable();
YourAdapter.Fill( myTable );
Теперь, когда у вас есть локальная таблица, которая не будет работать с ошибками по размеру контента, потому что не будет возвращено ни одной записи, теперь вы можете явно перейти к этому одному столбцу и установить его тип данных / размер информации, как вам нужно ...
myTable.Columns["NameOfProblemColumn"].WhateverDataType/Precision = Whatever you need...
СЕЙЧАС, ваша локальная схема допустима, и столбец проблемы будет идентифицирован с точностью.Теперь вставьте правильный запрос с правильным предложением where, а не 1 = 2, чтобы фактически возвращать данные ... Так как в первом проходе нет реальных строк, вам даже не нужно делать myTable.Clear()
, чтобы очистить строки... Просто повторите запрос и dataAdapter.Fill()
.
На самом деле я не пробовал, поскольку у меня нет проблем с данными, чтобы смоделировать ту же проблему, но теоретический процесс должен помочь вам без необходимостиявно просмотрите все столбцы ... только те, которые могут представлять проблему.