【发布时间】:2011-07-08 03:42:00
【问题描述】:
我知道不时会提出此类问题,但我找不到任何令人满意的解决方案。
如何使用 MS ACE OLEDB 12 打开 CSV 文件? 我用下面的代码试试。
DbConnection connection = new OleDbConnection();
connection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Documents;Extended Properties=\"Text;HDR=Yes\"";
connection.Open();
DbCommand cmd;
cmd = connection.CreateCommand();
cmd.CommandText = "SELECT * FROM [Mappe1#csv]";
DbDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
Console.Write("(" + reader.GetValue(i).ToString() + ")");
Console.WriteLine();
}
cmd.Dispose();
connection.Dispose();
Console.WriteLine("Done");
Console.ReadKey();
问题是只找到一列。文本由“;”分隔。即使我用“Delimited(|)”指定分隔符 f.e.它不会工作。
我找不到该提供商的任何文档...
【问题讨论】:
-
我们越来越远离 ACE。它有很多问题(几乎没有文档,没有支持,数据或工作表名称中的特定字符问题......)。我们发现,如果您的设计简洁,则使用 Interop 比使用 ACE 更快、更容易、更可靠。对于 CSV,我们正在使用另一个 API(LumenWorks CSV 阅读器:codeproject.com/Articles/9258/A-Fast-CSV-Reader)
标签: c# csv connection-string oledb provider