Sé que este tipo de preguntas se realizan de vez en cuando, pero no puedo encontrar ninguna solución satisfactoria.Microsoft.ACE.OLEDB.12.0 CSV ConnectionString
¿Cómo puedo abrir un archivo CSV utilizando MS ACE OLEDB 12? Lo intento con el siguiente código.
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();
El problema es que solo se encuentra una columna. El texto está delimitado por ';' Incluso cuando especifico el delimitador con "Delimited (|)" f.e. no funcionará.
No puedo encontrar ninguna documentación para este proveedor ...
Nos estamos alejando cada vez más de ACE. Tiene muchos problemas (casi sin documentación, sin soporte, problemas con caracteres específicos en los datos o nombres de la hoja de trabajo, ...). Descubrimos que, si tiene un diseño limpio, es más rápido, más fácil y más confiable usar Interop que ACE. Adicional para CSV, estamos utilizando otra API (lector de CSV de LumenWorks: http://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader) – SACO