我知道这类问题时常被问到,但我找不到任何令人满意的解决方案。
如何使用 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/