Odczyt pliku tekstowego rozdzielanego przecinkami do C # DataTable, kolumny zostają obcięte do 255 znaków

Importujemy z CSV do SQL. W tym celu czytamy plik CSV i zapisujemy do tymczasowego pliku .txt za pomocą schema.ini. (Nie jestem jeszcze pewien, dlaczego dokładnie zapisuję ten plik tymczasowy, ale tak właśnie działa kod). Od tego momentu ładujemy DataTable przez OleDB, używając następującego ciągu połączenia (dla plików ASCII).

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

Problem polega na tym, że pola z więcej niż 255 znakami zostają obcięte. Czytałem online o tym problemie i wydaje się, że domyślnie pola tekstowe są w ten sposób obcinane.

Ustawiam ustawienia rejestruImportMixedTypes=Majority Type iTypeGuessRows=0 wHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel , mieć nadzieję żemycolumns nie będzie już interpretowany jako tekst. Po wykonaniu tego tymczasowy plik txt jest poprawnie zapisywany z pliku CSV, ale gdy dzwoniędataAdapter.Fill, wynikowa tabela danych nadal ma obciętą wartość.

Oto określona definicja kolumny. CommaDelimited # txt Uwagi 2 false 234 true 130 0 0

Każda pomoc byłaby doceniana. W tej chwili nie jestem zainteresowany używaniem kodu 3D party do rozwiązania tego problemu, musi istnieć sposób na użycie wbudowanych narzędzi.

Oto definicja tabeli:

<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>

Dzięki,

Greg

Próbowałem edytować schema.ini, podając tekst o szerokości i to nie pomogło (wcześniej ustawiono notatkę)

[CommaDelimited.txt] Format = CSVDelimited DecimalSymbol =. Col1 = Szerokość tekstu notatki 5000