Как избежать экспоненциального формата при преобразовании CSV в Datatable

У меня есть файл CSV, я использую файл SCHEMA.INI для структурирования импорта файла .csv.

У меня возникла проблема с полем «Номер телефона». Клиент загружает номер телефона с (06) 1234565, поэтому я выбираю поле «Текст» в файле SCHEMA.ini.

Когда я конвертирую свой csv в datatable, поле номера телефона будет преобразовано как 4.32E+12, исходный номер телефона — 4320000000000.

Также в Schema.ini я пробовал Memo, Char Width 20 и т.д. Экспоненциальная форма не преобразована.

введите здесь описание изображения

Как я могу преобразовать в исходный формат?

string FileName = Path.GetFileName(FilePath);
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + folderpath + ";" + "Extended Properties=\"text;HDR=YES\"";

OleDbConnection Conn = new OleDbConnection();
Conn.ConnectionString = strConn;
Conn.Open();

string s1 = "select * from [" + FileName + "]";
OleDbDataAdapter da1 = new OleDbDataAdapter(s1, Conn);

DataSet dtall = new DataSet();
da1.Fill(dtall);
Conn.Close();

В Datatable номер телефона должен быть значением не в форме экспоненты.

Любая помощь высоко ценится, большое спасибо.


person rAm    schedule 30.07.2019    source источник
comment
У вас есть какие-то неизвестные или неопределенные определения. Нет float использования single, также hh:nn:ss ерунда. Даже с Text я думаю, что вы должны указать Width ##, хотя кажется, что это не нужно. Я не знаю, что делает OLE, когда сталкивается с такими вещами (игнорировать схему или только этот столбец?). Вы также можете поиграть с настройкой IMEX в строке соединения.   -  person Ňɏssa Pøngjǣrdenlarp    schedule 30.07.2019
comment
@ŇɏssaPøngjǣrdenlarp Спасибо за ваш комментарий. Пожалуйста, проверьте docs.microsoft.com/en-us/sql/odbc/microsoft/ для типа файла schema.ini, я пробовал IMAX=0 1 и 2. Но показатель степени не изменился.   -  person rAm    schedule 31.07.2019