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

ISO ISO3    ISO-Numeric
AD  AND 20

我一直在尝试下面的代码,但是没有运气。
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);

这是数据集可视化器的屏幕截图。它显然不是我追求的输出。

有什么建议么?这是我的Schema.ini文件。它与文本文件位于同一目录中。
[countryInfo.txt]
Format=TabDelimited
ColNameHeader=True
CharacterSet=ANSI

我应该只使用FileHelpers之类的东西吗?

@Hans Passant这是屏幕截图。

最佳答案

好吧,一个显而易见的候选人是,这个空格实际上不是制表符而是空格。尝试FMT = Delimited()。使用十六进制查看器查看实际内容。后台程序is here

this thread显示了为什么使用过去9年未得到支持的错误代码块(如Jet)是错误的。有了答案,将schema.ini中的第一行留空。

关于c# - 使用OleDbConnection读取制表符分隔的文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4063685/

10-12 12:53
查看更多