通过ADO.NET在64位CSV访问?
在一个32位的.NET应用程序,我可以使用此OLEDB连接字符串经由ADO.NET连接到CSV文件:通过ADO.NET在64位CSV访问?
"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位方式运行的不同驱动程序。
任何想法?
这不是一个驱动程序,但我对Sebastien Lorion的CSV阅读器很满意。请注意,我从未在64位环境中使用过它,但我不知道任何兼容性问题。
我最终不得不将我的应用程序转换为32位,因为我遇到同样的问题,但访问Microsoft Access数据库。我知道这会起作用,但你可能不需要这个解决方案。如果有人知道这个问题的答案,我也很乐意听到这个问题。
Alexis,
您是否需要驱动程序?如果您只需要逐行读取CSV文件,那么可以使用一些免费的解析器。如果您还需要写出CSV检查FileHelpers。
我不* *需要一个驱动程序,但它将接近于零的努力来安装驱动程序并更改连接字符串,并且略微> 0地努力去做其他事情。 看起来我不得不做其他事情:) – 2009-01-13 13:52:28
我有这个确切的同样的问题,经过大量试验&错误这是我发现的工作:
1.启用即席程序
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
不是一个完美的解决方案,但一个很好的解决方案。谢谢杰里米。 – 2009-01-13 13:53:06