Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eduardo Giullyanny

conectando ao MS Access

Recommended Posts

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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/

Compartilhar este post


Link para o post
Compartilhar em outros sites

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 aqui tem 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;
        }
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.