Al leer el archivo de texto delimitado por comas en C # DataTable, las columnas se truncan a 255 caracteres

Estamos importando desde CSV a SQL. Para hacerlo, estamos leyendo el archivo CSV y escribiendo en un archivo temporal .txt usando un schema.ini. (Aún no estoy seguro de por qué escribimos en este archivo temporal, pero así es como funciona el código actualmente). Desde allí, estamos cargando un DataTable a través de OleDB utilizando la siguiente cadena de conexión (para archivos ASCII).

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sPath + ";Extended Properties=\"text;HDR=Yes;FMT=Delimited\"";

El problema que tenemos es que los campos con más de 255 caracteres se truncan. He leído en línea sobre este problema y parece que, de forma predeterminada, los campos de texto se truncan de esta manera.

Configuré la configuración de mi registroImportMixedTypes=Majority Type yTypeGuessRows=0 enHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel , Esperando quemycolumns Ya no se interpretará como texto. Después de hacer eso, el archivo txt temporal se escribe correctamente desde el archivo CSV, pero cuando llamodataAdapter.Fill, el DataTable resultante aún tiene un valor truncado.

Aquí está la definición de columna en cuestión. CommaDelimited # txt Notas 2 falso 234 verdadero 130 0 0

Cualquier ayuda sería apreciada. En este momento, no estoy interesado en usar ningún código de terceros para resolver este problema, debe haber una forma de usar las herramientas integradas.

Aquí está la definición de la tabla:

<Columns> 
    <TABLE_NAME>CommaDelimited#txt</TABLE_NAME> 
    <COLUMN_NAME>Notes</COLUMN_NAME> 
    <ORDINAL_POSITION>2</ORDINAL_POSITION> 
    <COLUMN_HASDEFAULT>false</COLUMN_HASDEFAULT> 
    <COLUMN_FLAGS>234</COLUMN_FLAGS> 
    <IS_NULLABLE>true</IS_NULLABLE> 
    <DATA_TYPE>130</DATA_TYPE> 
    <CHARACTER_MAXIMUM_LENGTH>0</CHARACTER_MAXIMUM_LENGTH> 
    <CHARACTER_OCTET_LENGTH>0</CHARACTER_OCTET_LENGTH> 
</Columns>

Gracias,

Greg

Intenté editar el schema.ini especificando texto con un ancho, y eso no sirvió de nada (antes estaba configurado como memo)

Formato [CommaDelimited.txt] = CSVDelimited DecimalSymbol =. Col1 = Ancho del texto de las notas 5000