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

13 Comentários

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.

Partilhar:
Tags:

Comentários

13

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Simões
    Simões

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

  2. Avatar de Simões
    Simões

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

  3. Avatar de AlfaBoy
    AlfaBoy

    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. Avatar de Acethunder
    Acethunder

    É 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. Avatar de Joao
    Joao

    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?

    1. Avatar de João Melo
      João Melo

      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. Avatar de TVMANiA

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

    Obrigado!

  7. Avatar de Nuno Marques
    Nuno Marques

    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. Avatar de rsfgouveia
    rsfgouveia

    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.

    1. Avatar de Vania Santana
      Vania Santana

      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. Avatar de Pedro
    Pedro

    boas

    e o código para o Acess 2010 ?

    como e que se faz o interface?

  10. Avatar de Muahmed
    Muahmed

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