Импортировать CSV-файлы, используя OleDB - строковый тип данных? - PullRequest
1 голос
/ 21 апреля 2011

Я пишу веб-приложение на C # .net, и пользователи будут загружать файлы CSV для обработки.Эти CSV-файлы содержат несколько типов данных, и у меня возникли проблемы с некоторыми из них.Существует 20-значное поле номера квитанции, которое импортируется в научной нотации (9.1234563E + 18 вместо 91234563000000000000), и все ведущие нули удаляются.Ведущие нули также сбрасываются в другое поле с 4-значным номером магазина.

Я читал о создании файла Schema.ini для определения типов данных, но у каждого файла будет свое имя, а это означает, что мне нужно будет сгенерировать новый файл схемы программно, так как несколько пользователейиспользовать приложение одновременно, оно как бы исключает эту опцию.

У кого-нибудь есть совет?

Ответы [ 2 ]

0 голосов
/ 21 апреля 2011

Похоже, вам придется написать какой-то специальный код, который читает файлы вручную и разбивать поля самостоятельно. Вы можете легко прочитать строку за раз и использовать метод String.Split для получения отдельных полей. Конечно, это предполагает, что файлы CSV всегда будут в одном и том же формате, поэтому вы можете обрабатывать каждое поле одинаково, независимо от того, откуда поступил файл. Таким образом, вы можете обрабатывать каждое поле именно так, как хотите.

0 голосов
/ 21 апреля 2011

Этот файл CSV создан в Excel?если это так, убедитесь, что в столбцах указаны правильные типы данных.Раньше у меня была похожая проблема, но это было из-за того, что у пользователей поле даты было установлено как другой тип - поэтому вместо возврата что-то вроде 20100408 я бы получил 24782 :-)

В противном случае попробуйтечтение в каждом поле имеет прямой текст .... а затем обрабатываете преобразования самостоятельно

...