Вопрос

В 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-битной среде, но я не знаю никаких проблем с совместимостью.

http://www.codeproject.com/KB/database/CsvReader.aspx

Другие советы

У меня была точно такая же проблема, и после долгих проб и ошибок это было то, что, как я обнаружил, сработало:

1.Включить процедуры Adhoc

sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO

2.Установите этот файл на сервер:

http://www.microsoft.com/downloads/en/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en

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!

См. этот ответ для получения ссылок на скачивание, сведений об установке, подключения строки и т. д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top