O provedor 'Microsoft.ACE.OLEDB.12.0' não está registrado na máquina local
Pessoal, estou com o seguinte problema, ao executar minha aplicação o mesmo me retorna o erro do provedor de acesso do office, acho que é algo assim. Porém entrei em outros tópicos relacionado a este problema, segui algumas sugestão de alterar as configuração da minha solution em configuration Menager e fui em Active solution platform coloquei a opção de X86 em em Project na aba PlatFrom também alterei para x64, entretanto, também não funcionou ao compilar.
Vale lembrar que também instalei o drive para tentar corrigir o problema, também não funcionou. Segue meu código:
private DataTable DadosExcel(string caminho)
{
Char aspas = '"';
//OleDbConnection conexao = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="" + caminho + "";Extended Properties='Excel 12.0;HDR=No;IMEX=1';");
string Conexao = "Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=" + caminho + ";" +
"Extended Properties=" + aspas + "Excel 12.0;HDR=No;IMEX=1" + aspas;
System.Data.OleDb.OleDbConnection Cn = new System.Data.OleDb.OleDbConnection();
Cn.ConnectionString = Conexao;
Cn.Open();
object[] Restricoes = { null, null, null, "TABLE" };
DataTable DTSchema = Cn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, Restricoes);
if (DTSchema.Rows.Count > 0)
{
string Sheet = DTSchema.Rows[0]["TABLE_NAME"].ToString();
OleDbCommand Comando = new OleDbCommand("SELECT * FROM [" + Sheet + "]", Cn);
DataTable Dados = new DataTable();
System.Data.OleDb.OleDbDataAdapter DA = new System.Data.OleDb.OleDbDataAdapter(Comando);
DA.Fill(Dados);
Cn.Close();
return Dados;
}
return null;
}
Alguém por gentileza tem alguma ideia do que pode ser feito?Discussão (0)
Carregando comentários...