Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia amigos
Estou tentando acessar o MS ACCESS e foi das seguintes formas.:
Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\database\CONTROL.MDB; User Id=Admin; Password=senha_massa;
O erro retornado foi.: O provedor 'Microsoft.Jet.OLEDB.4.0' não está registrado na máquina local
Provider = Microsoft.ACE.OLEDB.12.0; Data Source = C:\database\CONTROL_.MDB;Jet OLEDB:Database Password = senha;
Novamente o erro foi.: O provedor 'Microsoft.ACE.OLEDB.12.0' não está registrado na máquina local
eu já tentei estes dois providers e não deu certo. Estou pesquisando sobre estes erros, mas não houve nada ate agora.
Alguém ai pode dar uma dica?
obrigado pela dica.
Pesquisei muito na internet e vi esta pagina tb
Mesmo assim vou descrever meu ambiente.
Estou desenvolvendo do Visual Studio 2015 no windows 8 64 bits. não sei a versão do meu iis server, mas é esta imagem principal clique aqui para ver, imagino que seja 8 a versão, mas nem olhei (uma pq não sei onde usar, se puder me dar uma dica e outra pq eu não posso ver este detalhe, pois eu imagino que não seja pela versão do iis).
Na minha maquina ela funciona tanto na iis express da IDE tanto no servidor iis da minha máquina.
o ambiente que está dando este erro é no servidor Windows server 2008 R2, o que tem instalado lá são os conectores que eu achei na internet um 2010 e 2007, clique aquitem um que segui, mas não resolveu, ele fala de iniciar o odbc32... tentei fazer lá, mas num resolveu. continuando... ele tem o MS ACCESS 2013 instalado, não funcionou, tentei instalar o ms access, imaginei que iria resolver, mas continua do mesmo jeito. Tentei tb retirar a senha e usar outros driver tipo esse.:
Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\mydatabase.accdb;
SystemDB=C:\mydatabase.mdw;
mas não deu certo nem na minha máquina, abaixo tem a Classe "Conexao", tem duas string de drive de conexão que esta testando, no meu pc funciona os dois. no servidor, não funciona nenhum. logo abaixo tem o código do webservice.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.OleDb;
using System.Configuration;
namespace StartWebService
{
public class Conexao
{
private static readonly Conexao instanciaAccess = new Conexao();
public static Conexao getInstancia()
{
return instanciaAccess;
}
public OleDbConnection getConexao()
{
//string conn = @"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = C:\database\CONTROL_.MDB;Jet OLEDB:Database Password = sennha";
string conn = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\database\CONTROL.MDB; User Id=admin; Password=;";
return new OleDbConnection(conn);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data.OleDb;
using System.Configuration;
using System.Drawing;
using System.Data;
namespace StartWebService
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod]
public List<string> HelloWorld()
{
List<string> lista = new List<string>();
using (OleDbConnection conexaoAccess = Conexao.getInstancia().getConexao())
{
try
{
conexaoAccess.Open();
OleDbCommand sql = new OleDbCommand("SELECT * FROM ESTADO", conexaoAccess);
OleDbDataReader dados = sql.ExecuteReader();
while (dados.Read())
{
lista.Add(dados.GetString(2));
}
}
catch (Exception e)
{
lista.Add(e.Message);
}
finally
{
//fecha a conexao
conexaoAccess.Close();
}
}
return lista;
}
}
}
Olá. Qual a versão Access você está utilizando? E onde você está inserindo essa string de conexão? É direto no código ou em um arquivo de configuração?
Já inseriu o namespace necessário no código para usar o OLEDB?
System.Data.OleDb
veja também as strings de conexão: https://www.connectionstrings.com/access-2013/