Tutorial C# – Ligação a Base de dados MySql

Como prometido, esta semana começamos uma série de posts dedicados às ligações a base de dados em C#. Neste tutorial será abordada a conexão e como mostrar dados provenientes de base de dados MySql. No próximo tutorial irei demonstrar uma ligação a uma base de dados Access. Será também explicado posteriormente como manipular os dados (Inserir, Editar, Remover).

Primeiro criamos uma base de dados no phpMyAdmin. Neste caso criei a base de dados com o nome teste e com os campos id, nome e numero.

Para que seja possível visualizar dados de uma base de dados MySql num programa em C#, é necessário adicionar a referência MySql. Para isso é necessário efectuar o download do mysql-connector-net-6.2.3. Depois é só correr o setup.

Para adicionar uma referência:

  • Clicar com o botão direito em Referência e fazer “Add Reference”.

  • Seleccionar na lista MySql.Data (Pode ser necessário reiniciar o Visual Studio)

Agora que temos a referência adicionada, temos de a adicionar no código.



Agora vamos ao código

Temos de adicionar um MySqlConnection, MySqlDataAdapter e um DataSet.

Vou criar uma pequena aplicação, com apenas um botão e uma DataGridView.

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

O resultado será:

E desta forma temos uma ligação C# + MySql efectuada. Como disse no início, o próximo tutorial será de ligação do C# a uma base de dados Access.

Espero que tenham gostado.

Homepage: MySql
Download: Mysql Connector Net (6.2.3)

  
     Pin It  

Arquivado na categoria: CSharp, Tutoriais


46 Comentários

  1. Muito bom e estarei atento para ver como se faz a ligação a uma BD Access.
    Acho que tenho mesmo que aprender C# e passar as minhas bases de dados Access para MySql.

    • Penso que já exista aqui pelo Tek

        • De facto pode haver alguma confusão. Mas deixa-me fazer um reparo interessante.

          A Marktest introduziu no mercado nacional, há uns anos o Netscope. Este é um sistema de medição de acessos user centric, digamos que é a entidade mais credível que categoriza a Internet Nacional.

          No ranking do Netscope, que pode ser visto aqui, o Sapo TEK ocupava até final de 2009 (antes da entrada do pplware.com para a conta TEK SAPO) a posição 61.

          Se repararem a posição do TEK SAPO em Janeiro (altura que o pplware entrou para o TEK SAPO) passou para a posição 26.

          Nos meses seguintes, Fevereiro e Março o pplware teve um ligeiro aumento nos seus números.

          Dentro de dias sairá o relatório de Março e já não será TEK Sapo mas sim Sapo Tecnologia e veremos se demos mais um saltinho ;)

          Queria só, apenas por curiosidade, que reparasses nos primeiros lugares desse ranking.

          Fazendo uma pequena análise e se retirarmos sites que não são de todo da nossa ugalha, tipo o Portal Sapo, o jornal a Bola, o Record, o jornal Público, o Sapo Blogs o Sapo vídeos, Correio da Manhã, RTP, TMN e afins, o pplware.com estará posicionado entre os 10 primeiros sites nacionais.

          :D não é vaidade, é orgulho :P

          • Parabéns.

            So fiz confusão porque é uma das tabs que estão sempre abertas… esta e a do TEk.. e por acaso estava a pensar numa noticia do Tek quando comentei esta…

            Lol

  2. Hélio, o meu desde já Obrigado por este tutorial… Foi a meu pedido :)

    • De nada. Sugestões são sempre bem vindas.

      Cumps

    • boas..
      do meu ponto de vista só um reparo tendo em conta que C# é uma copia do Java, podiam ter feito um tutorial em Java.

      cmps

      • O C# foi baseado no Java, mas dizer que é uma cópia é uma afirmação simplista. O C# é consideravelmente mais complexo do que o Java. Tem muitos pormenores que o Java não contempla. Pessoalmente, prefiro o Java devido à sua simplicidade sintáctica. No entanto, o potencial do C# não deve ser ignorado.

        • boas..
          quando me refiro a cópia não me refiro a todo o trabalho extra realizado desde a cópia do java para ca mas que é uma cópia é, e mais uma senhora cópia, para começar garbage collector, so podemos derivar uma classe o resto uamos interfaces, ate a sintaxe, eu ainda não sabia que era baseado em java e quando vi codigo em C# disse “meu deus isto é java”, obviamente que a sintaxe não é exactamente igual, epá também era demais não vos parece, mas esta la toda a filosofia do java.obviamente que tem sido adicionada muita coisa ao C# desde ai mas dizer que c# é mais potente do que java eu pelo menos não vejo onde, se sim…aonde?existiam alguns problemas no java versão 1.2 mas poxa isso foi a um seculo o java de hoje está potentissimo, e agora com as novas librarias que substituem/complementam o swing…fantastico.
          Até pessoal doutorado nestas andanças ja me disseram que a microsoft copiou o java, na altura a quando da cópia melhoruo e nessa altura o C# ficou a frente mas desde a versão 1.2 do java muita coisa melhorou, alias, eu iria quase ao ponto de dizer quase tudo mudou, eu conheci esta versão.
          nada que bata uma linguagem de programação feita pela sun, sintactitamente , objectividade, facilidade de leitura, é a tal historia…qual o formato mais refinado ooxml, ou odt?? a resposta é simples, no entanto anda para ai muito boa gente a pensar que é ooxml pois…é microsoft.

          cmps

  3. Para inserir/modificar dados na base de dados mysql basta alterar o código mysql ?

  4. Meus caros, se alguém quiser ver algum guia reproduzido pelo Hélio, digam algo. :D

    • ola eu pretendia sim um guia algum manual gratuito de preferência em português porque o que encontro eh tudo em inglês e dava me um jeitaço neste momento será que me podem facultar isso?
      e também podiam colocar um tutorial como por uma aplicação em c# a correr numa intranet isso eh que eu agradecia mesmo

      cumps sagres

  5. Muito jeito, este semestre tenho Eng. de Software e Base de Dados (SQL), e vai dar jeito.

    Se poderes continuar com tutoriais sobre BD, agradecia. (adicionar, remover, editar, etc…)

    Cumprimentos. ;)

  6. Não sei como fazem, mas adivinham sempre o que estou a precisar.
    Já aconteceu com Android, mySQL, entre outros, e agr C#.

    Um muito obrigado!

  7. desculpem a ignorância, mas em que programa faço estes tutoriais?

  8. Boa Tarde Hélio,

    Tenho seguido os seus posts atentamente, e gosto da maneira como aborda esta linguagem.
    Tenho uma questão para si, que para mim é um desafio, que é a seguinte:
    Eu Desenvolvi uma aplicação em C#, com windows forms, que tem como backgroung uma BD SQL. Neste momento, pretendo criar uma pacote de instalação(setup), para que seja corrida noutros pc´s, que não tenham instalado o sql server 2008, nem framework .NET, nem qualquer desses componentes necessários para a aplicação correr.
    Mas, tenho feito imensas pesquisas, sem qualquer resultado positivo.
    Será que me pode ajudar?

    Grato pela atenção,
    João Oliveira

    • Esqueci-me de sublinhar que tenho imensa urgência, em obter a sua resposta.

    • Lol…

      Está aqui uma personagem :D .

    • Ja percebi o que pretende:
      omeletes sem ovos
      Ja agora nao quer instalar numa maquina sem cpu?

      Atenciosamente
      TinkyWinky

    • Peço desculpa, mas este comentário é do arco da velha… mais se parece com o seguinte:

      “Caro Hélio, comprei um carro a gasolina e estou muito satisfeito com o produto.
      Contudo assim que o deposito chegou ao fim carro parou mas quero continuar a andar. Já perguntei a toda a gente com o fazer mas ninguém responde
      Esqueci-me de referir que tenho urgência nesta resposta, uma vez que estou apeado no Monsanto”

      Com os meus cordeais cumprimentos,
      José Alberto

    • O que pretendo é criar um pacote de instalação que instale o sql server express e crie também a BD. Provavelmente não fui muito claro, sobre o que pretendo.

  9. Mto bom! Andei uns dias de volta disto na altura que me andei a instruir sobre C# e devo dizer que ainda me deu umas dorzitas de cabeça pois dáva me sempre erro. Afinal era só a Connection String que estava errada, de resto é mesmo mto simples. Nada que justifique dores de cabeça….

  10. Alguém me pode dar uma ajudinha? Como ponho aquele botão ver resultados? Ajudem-me sou newbie. Não consigo realizar a parte gráfica.

  11. Data gride ja consegui por, mas ainda nao percebi o btVerResultados_Click

    • Leonardo, como o C# é uma linguagem orientada a objectos e eventos, o btVerResultados_Click é o evento click associado ao botão “Ver resultados”. Ou seja, no ambiente gráfico foi colocado um botão que nas propriedades tem como texto “Ver Resultados” e o seu nome na aplicação é “btVerResultados”, que ao fazer duplo clique permite introduzir o código associado.

      Ao Acess ;) muda praticamente a connection string e o tipo de coneção =) mas isso já há quem vá explicar.
      Cumps! ;)

      • @Rudi Rocha

        Nem mais.

        @Leonardo

        Como o caro leitor Rudi Rocha disse, basta “abrires” o botão clicando duas vezes em cima, e ele gera automaticamente o evento “Click”.

        Cumps

  12. Boa noite,
    Venho por este meio pedir a vossa 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 pudessem ajudar, agradecia bastante e aqui deixo o meu mail:

    vania.filipa@hotmail.com

    Agradeço imenso pela vossa ajuda…

  13. Boa tarde,
    desculpem a ignorância, como uso o phpmyadmin?

    Não há outra alternativa? por exemplo sql lite?

    cumprimentos

  14. boas, gostava que alguém me ajudasse nesta pequena duvida
    aproveitando o tutorial que foi feito e que agradeço, colo a seguinte duvida, como é que eu fazia para numa “label” colocar o nome do id 3.

    eu tentei
    MySqlcommand comando = new MySqlcommand(“SELECT nome FROM dados WHERE id=3″);
    mas não consegui meter a funcionar….(e tentei varios tipos de atribuição para a minha label)
    por isso se me poderem ajudar e dizer-me como faço para “sacar” só um campo/célula da minha base de dados agradecia

  15. Deu erro aki no Open(); alguem pod ajudar? D:

  16. Muito bom o tutorial.

    Poderiam fazer mais deste género – C# + MySQL?

    Obrigado.

    Cumprimentos,
    AndreLC

  17. Cara tive diversos problemas e códigos para conexão e o seu funcionou de primeira.
    Obrigado.

  18. Boas,

    Imaginemos que quero fazer uma aplicação, com várias windows form, e preciso de fazer comandos para a BD nelas…

    Ha alguma maneira (e como) de ligar globalmente a base de dados para estar acessivel ao programa todo sem ser preciso reescrever o codigo em todas as formas?

    Obrigado desde ja.

    Cumps :)

  19. Ola todos,
    é possível disponibilizar o código da solution?

    Cumps

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.