Dan*_*şar 9 c# csv oledb provider connection-string
我知道这种问题会不时被问到,但我找不到任何令人满意的解决方案.
如何使用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();
Run Code Online (Sandbox Code Playgroud)
问题是只找到一列.文本由';'分隔.即使我用"Delimited(|)"指定分隔符,它也行不通.
我找不到这个提供商的任何文档......
小智 6
这有助于我使用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
Run Code Online (Sandbox Code Playgroud)
为我工作.但是很难过.
好像FORMAT=Delimited(;)在连接字符串已经过时了......
尝试:
connection.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Documents;Extended Properties=\"Text;HDR=Yes;FORMAT=Delimited\"";
Run Code Online (Sandbox Code Playgroud)
(将“FORMAT=Delimited”插入连接字符串的扩展属性中...)
| 归档时间: |
|
| 查看次数: |
39780 次 |
| 最近记录: |