使用OleDbConnection读取制表符分隔文件

Pra*_*apa 5 .net c# oledb text-files

我的制表符分隔文件是这样的:

ISO ISO3    ISO-Numeric
AD  AND 20
Run Code Online (Sandbox Code Playgroud)

我一直在尝试以下代码,没有运气.

OleDbConnection cn = new  OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= |DataDirectory|;Extended Properties='text;HDR=Yes;FMT=TabDelimited'");
OleDbCommand cmd = new OleDbCommand(@"SELECT * FROM countryInfo.txt", cn);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);

cn.Open();

DataTable dt = new DataTable();
da.Fill(dt);
Run Code Online (Sandbox Code Playgroud)

这是Dataset Visualizer的屏幕截图.它显然不是我追求的输出. 替代文字

有什么建议?这是我的Schema.ini文件.它与文本文件位于同一目录中.

[countryInfo.txt]
Format=TabDelimited
ColNameHeader=True
CharacterSet=ANSI
Run Code Online (Sandbox Code Playgroud)

我应该使用像FileHelpers这样的东西吗?


@Hans Passant这是一个截图. 替代文字

Han*_*ant 1

嗯,一个明显的候选者是这个空白实际上不是制表符而是空格。尝试 FMT=Delimited( )。使用十六进制查看器查看实际情况。背景资料在这里

这个线程说明了为什么使用像 Jet 这样的有缺陷的代码块(在过去 9 年里一直不受支持)是一个错误。有了答案,将 schema.ini 中的第一行留空。