Embora o conjunto de dados seja permitido para "preencher" um adaptador de dados, normalmente fiz com um DataTable, pois ao consultar, estou esperando apenas um conjunto de resultados. Dito isso, eu pré-consultaria a tabela, apenas para obter sua estrutura ... algo como
select whatever from yourTable(s) where 1=2
Isso obterá as colunas de resultados esperados quando você fizer um
DataTable myTable = new DataTable();
YourAdapter.Fill( myTable );
Agora que você tem uma tabela local que não falhará no tamanho do conteúdo porque nenhum registro será retornado, agora você pode ir explicitamente para essa coluna em questão e definir suas informações de tipo / tamanho de dados conforme necessário ...
myTable.Columns["NameOfProblemColumn"].WhateverDataType/Precision = Whatever you need...
AGORA, seu esquema local é legítimo e a coluna do problema terá sido identificada com sua precisão. Agora, coloque sua consulta apropriada com a cláusula where adequada e não o 1=2 para realmente retornar dados... Como não há linhas reais na primeira passagem, você nem precisa fazer um
myTable.Clear()
para limpar as linhas... Apenas execute novamente a consulta e dataAdapter.Fill()
. Na verdade, não tentei, pois não tenho seus problemas de dados para simular o mesmo problema, mas o processo teórico deve ajudá-lo sem ter que passar explicitamente por todas as colunas ... apenas as poucas que podem representar o problema.