c# - Microsoft.ACE.OLEDB.12.0 CSV 连接字符串

标签 c# csv connection-string oledb provider

我知道这类问题时常被问到,但我找不到任何令人满意的解决方案。

如何使用 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.OLEDB.12.0 在 C# 中解析了一个以分号分隔的 csv: http://sqlserverpedia.com/blog/sql-server-bloggers/use-ace-drivers-and-powershell-to-talk-to-text-files/ :

在与要导入的 csv 文件相同的目录中创建一个 schema.ini 文本文件,内容如下:

[fileIwantToImport.csv]
Format=Delimited(;)
ColNameHeader=True

为我工作。但是太恶心了。

似乎连接字符串中的 FORMAT=Delimited(;) 已经过时了......

关于c# - Microsoft.ACE.OLEDB.12.0 CSV 连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5182767/

相关文章:

c# - 在 C# winforms 中读取 csv 文件时出现数据错误

.net - 用于删除元数据的正则表达式

c# - 如何在类库项目中获取连接字符串

c# - 在 ViewModel 中处理对话框的最佳方式是什么?

c# - 如何用 C# 中的函数语句替换 for 循环?

c# - 一个例程/函数中的 CSV 解析器?

javascript - 将文本区域中的 CSV 输入转换为动态表

asp.net - 是否需要在 web.config 中保护连接字符串?

c# - 为什么 POCO 相对于 EF4、nHiberate 是一件好事

c# - 读取具有不同工作表名称的多个 Excel 工作表