Tutorial C# – Ligação a uma Base de Dados Access 2007 e 2003

Na semana passada tive a oportunidade de demonstrar como se efectua a ligação a uma base de dados MySQL através do C#. Esta semana e como prometido, demonstro como se efectua uma ligação a uma base de dados Access 2007 e 2003, já que existe uma pequena diferença na connection string. Como poderão verificar as diferenças são poucas, e como em tudo, esta é apenas uma das maneiras de escrever o código.

Primeiro criamos a base de dados no Access (2007). Neste caso criei três campos id, nome e numero.

Depois de criada a estrutura da base de dados, passamos ao código.

Tal como o MySQL, é necessário adicionar uma referência, mas no caso do Access é somente no código.

Agora vamos ao código

No botão “Ver Resultados” inserimos o seguinte código.

1ª Parte do código (Definição das connection strings 2003 e 2007)

2ª Parte do código

E o resultado será:

E desta forma temos uma ligação C# ao Access efectuada. Como podem verificar, as ligações às bases de dados são bastante simples.

No próximo tutorial vamos começar com as manipulações da base de dados através do C# (inserir registos).

Espero que tenham gostado.

  
     Pin It  

Arquivado na categoria: CSharp, Tutoriais


13 Comentários

  1. Nem de propósito.
    Estou a trabalhar em C# e a aceder a bases de dados.

  2. Nem de propósito.
    Estou a trabalhar em C# e a aceder a bases de dados.
    Muito bom.
    Continua assim

  3. Bom dia

    Acho que é necessário um pequeno á parte que a mim me fez perder algum tempo, para quem usa windows 64bits ao tentar correr a aplicação vai se deparar com um problema de acesso á base de dados por isso é necessário definir que a aplicação vai ser compilada para x86, foi a única solução que encontrei.

  4. É de referir que o Provider Microsoft.ACE do Access 2007 também comunica com as Bases de Dados do Access 2003. Não sendo necessário que existam ligações diferentes.

    Quanto à parte dos 64bits, infelizmente a Microsoft só tem até à data um sistema com 32bits, sendo que a tentativa de acesso devolve um erro informando que não existe o Provider no sistema.

    Felizmente o Office 2010 já está previsto ser lançado nas duas plataformas (x64 e x86)

  5. Boa Tarde,

    Eu estou a tentar trabalhar com uma base de dados SQL SERVER 2008, e queria através de código C# aceder a uma Stored Procedure. Mas, quando estou a correr a minha aplicação(win forms), e tento fazer o update de um tuplo de um cliente na BD, este lança-me a seguinte excepção:

    OleDb Connection Error:System.Data.OleDb.OleDbException: Syntax error or
    access violation at
    System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) at
    System.Data.OleDb.OleDbCommand.ExecuteCommandTextForMultpleResults(tagDBPARAMS
    dbParams, Object& executeResult) at
    System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at
    System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior,
    Object& executeResult) at
    System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior
    behavior, String method) at
    System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) at
    System.Data:OleDb.OleDbCommand.ExecuteNonQuery()…

    Alguém me pode ajudar?

    • Ola.
      1ª questão: porque razão estás a utilizar o OLEDB em vez do sqlserver client?
      2ª questão: porque não utilizas um ORM para fazer essas operações na BD? Por exemplo LinqToSQL ou então a Entity framework, funcionam que é uma maravilha.
      3ª questão sem código é difícil perceber o que causou o erro, mas pela descrição será qualquer coisa em termos de sintaxe.

      Cumprimentos

  6. Podias disponibilizar o projecto e a base de dados para download sff?

    Obrigado!

  7. Boas

    Tá muito bom, simples e conciso.

    Só peço uma coisa, se houver mais um tutorial para C# e ligações access/sql, que tentasses focar outras funções, por exemplo inserir, eliminar, editar.

    Quando fiz o meu projecto foi o mais chato.

    Cumps e continua o bom trabalho

  8. Boa tarde a todos

    Sou novo por aqui. Tenho alguns “progamazitos” feitos por mim
    em C# e teria todo o gosto em partilhar com vocês.

    Como o faço? Este site não tem registo para users?

    Obrigado.

    • Boa noite,
      Venho por este meio pedir a sua ajuda para um programa de que estou a desenvolver sobre C#. Eu estou a fazer um programa sobre “Software de uma Biblioteca”, só que ainda nao está terminado, falta uns pequenos pormenores. Seria possivel ajudar-me por favor?? O meu problema é arranjar os códigos para o botão “guardar”, “editar”… Se me pudesse ajudar, agradecia bastante e aqui deixo o meu mail:

      vania.filipa@hotmail.com

      Agradeço imenso pela ajuda…

  9. boas

    e o código para o Acess 2010 ?

    como e que se faz o interface?

  10. Entao quando e que sera publicado o post de como guardar os dados na base de dados

Deixe o seu comentário

Aviso: Todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste site ou do(s) seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. O autor deste site reserva-se, desde já, o direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação do seu autor (nome completo e endereço válido de email) também poderão ser excluídos.