yo tuve el mismo problema, lo que pasa es que el oledb toma un promedio de filas para obtener el tipo de datos, si la mayoria son numeros la toma como numerica (y los strings salen como nulos) y si la mayoria son texto anda todos bien(ya que son todos string).... creo que se puede modificar cuantos registros debe tomar para muestreo... mira esta link
http://support.microsoft.com/default...EN-US;316934#4
Saludos