У меня есть файл 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 номер телефона должен быть значением не в форме экспоненты.
Любая помощь высоко ценится, большое спасибо.
float
использованияsingle
, такжеhh:nn:ss
ерунда. Даже сText
я думаю, что вы должны указатьWidth ##
, хотя кажется, что это не нужно. Я не знаю, что делает OLE, когда сталкивается с такими вещами (игнорировать схему или только этот столбец?). Вы также можете поиграть с настройкой IMEX в строке соединения. - person Ňɏssa Pøngjǣrdenlarp   schedule 30.07.2019