制表符分隔文件的 OleDb 连接字符串



我需要读取各种数据文件类型,例如xlsx,csv,txt和mdb,并且我想使用OleDB连接,以便读取文件的过程相同,只是连接字符串不同。但是,OleDB 忽略连接字符串中的分隔符,如下所示,仅读取逗号分隔符。

Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Text;HDR=Yes;Delimited(t)';
Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Text;HDR=Yes;FMT=TabDelimited';

我宁愿让 OleDB 引擎完成这项工作,而不是自己解析制表符分隔的文件。

有几个关于这个问题的StackOverflow问题,解决方案通常是在同一目录中创建一个.ini文件,但有时我的用户对该文件夹没有写入权限。看到所有与我类似的StackOverflow问题至少已有几年的历史,有人对这个问题有任何更新的信息吗?

这就是我如何使用|分隔符使用 OleDB 读取|分隔的.csv或.txt文件,但是,我使用的是 ACE 引擎并从 C# 构造连接字符串:

connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Path.GetDirectoryName(catalogFile) + ";Extended Properties='text;HDR=YES;FMT=Delimited(" + (char)124 + ")'";

(char)124代表 | 的 ASCII 代码。知道 TAB 的 ASCII 代码是 9,您可以尝试在连接字符串中使用它:

...;Extended Properties='text;HDR=YES;FMT=Delimited(" + (char)9 + ")'";

请尝试上述代码片段,并使用 MS Access 数据库引擎驱动程序尝试代码。由于它是较新的,也许它具有更好的分隔符配置处理。

相关内容

  • 没有找到相关文章

最新更新