Доступ к CSV через ADO.NET в 64-разрядной версии?
Вопрос
В 32-разрядном приложении .NET я могу использовать эту строку подключения OLEDB для подключения к CSV-файлу через ADO.NET:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\foo;"
или этот ODBC-файл:
"Driver={{Microsoft Text Driver (*.txt; *.csv)}};Dbq=c:\foo"
Однако, по-видимому, нет 64-разрядных версий ни драйверов OLEDB Jet, ни текстового драйвера ODBC.
Я мог бы разобрать CSV построчно или запустить приложение в 32-разрядном режиме, но в идеале я просто хотел бы найти другой драйвер, который работает как 64-разрядный.
Есть какие-нибудь идеи?
Решение
Это не водитель, но я доволен CSV-ридером Себастьяна Лориона. Обратите внимание, что я никогда не использовал его в 64-битной среде, но я не знаю никаких проблем с совместимостью.
Другие советы
У меня была точно такая же проблема, и после долгих проб и ошибок это было то, что, как я обнаружил, сработало:
1.Включить процедуры Adhoc
sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO
2.Установите этот файл на сервер:
3.Используйте этот формат запроса:
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=C:\SQL\;HDR=Yes;','SELECT * FROM [test.csv]');
4.Включить процедуры автоматизации OLE:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE with override
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE with override;
GO
Алексис,
Вам вообще нужен водитель?Если вам просто нужно прочитать CSV-файл построчно, существует несколько бесплатных парсеров.Если вам нужно также записать CSV-файл, проверьте Помощники по работе с файлами.
В итоге мне пришлось преобразовать мое приложение в 32-разрядное, потому что у меня возникла та же проблема, но с доступом к базе данных Microsoft Access. Я знаю, что это сработает, но вы можете не захотеть этого решения. Если кто-нибудь знает ответ на этот вопрос, я бы тоже хотел его услышать.
Вам повезло - в декабре 2010 года Microsoft опубликовала 64-битный драйвер OLEDB для файлов CSV и XLSX! Р>
См. этот ответ для получения ссылок на скачивание, сведений об установке, подключения строки и т. д.