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

49 Comentários

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)

Partilhar:
Tags:

Comentários

49

Deixe um comentário

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

  1. Avatar de M.Manuelito
    M.Manuelito

    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.

    1. Avatar de chicosoft

      Penso que já exista aqui pelo Tek

        1. Avatar de Vítor M.

          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.

          😀 não é vaidade, é orgulho 😛

          1. Avatar de chicosoft

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

    Hélio, o meu desde já Obrigado por este tutorial… Foi a meu pedido 🙂

    1. Avatar de Hélio Moreira
      Hélio Moreira

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

      Cumps

      1. Avatar de Fernando Prado
        Fernando Prado

        Olá! Parabéns pelo tutorial.Que a meus ver, explicado e muito esclarecedor.
        Enfim, gostaria se possível um tutorial onde exiba dados do banco em textBox’s após selecioná-lo através de um combobox.
        Obs: se possível esses dados sejam exibidos em outro form.

    2. Avatar de lmx
      lmx

      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

      1. Avatar de Renato Peixe
        Renato Peixe

        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.

        1. Avatar de lmx
          lmx

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

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

    1. Avatar de Hélio Moreira
      Hélio Moreira

      É necessário alterar algum código, pois temos de fazer insert / update ou remove. 🙂

      Mas não é nenhum bicho de 7 cabeças…

      Cumps

  4. Avatar de Vítor M.

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

    1. Avatar de sagres
      sagres

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

    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. Avatar de Gonçalo Ribeiro
    Gonçalo Ribeiro

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

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

    1. Avatar de Hélio Moreira
      Hélio Moreira

      Pode sempre fazer no visual studio 2008 express edition que é grátis 😉

      1. Avatar de Fernando Jorge
        Fernando Jorge

        Os produtos da MS são, sem dúvida, muito bons neste campo… as express editions são grátis, mas se quiseres apostar em software open source também tens uma boa alternativa no SharpDevelop:
        http://www.icsharpcode.net/OpenSource/SD/

        (há mais… mas não me estou a lembrar dos nomes!)

        1. Avatar de Hélio Moreira
          Hélio Moreira

          Todo o software OpenSource é muito bem vindo. Por acaso não conhecia, mas vou experimentar.

          Cumps

          1. Avatar de Fernando Jorge
            Fernando Jorge

            Tenho ideia que está já com muita qualidade… 🙂

        2. Avatar de César Faria

          não sei se o sharp develop ainda está assim, mas quando comecei a programar em c# utilizava-o. tive de o abandonar porque qdo estava a criar forms se tivese de ir alterar algum código à unha e depois tivesse de voltar ao modo de edição do form ele reescrevia o código todo e perdia o que eu tinha alterado manualmente.
          isto foi há uns 4 anos. espero que já tenham corrigido essa falha.

  8. Avatar de Joao Oliveira
    Joao Oliveira

    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

    1. Avatar de Joao Oliveira
      Joao Oliveira

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

    2. Avatar de Gervazio
      Gervazio

      Lol…

      Está aqui uma personagem :D.

    3. Avatar de TinkyWinky
      TinkyWinky

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

      Atenciosamente
      TinkyWinky

    4. Avatar de José Alberto
      José Alberto

      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

    5. Avatar de Joao Oliveira
      Joao Oliveira

      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. Avatar de F. Vitorio
    F. Vitorio

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

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

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

    1. Avatar de Rudi Rocha

      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! 😉

      1. Avatar de Hélio Moreira
        Hélio Moreira

        @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. Avatar de Vania Santana
    Vania Santana

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

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

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

    cumprimentos

    1. Avatar de Bruno.
      Bruno.

      Você pode utilizar o excelente Vertrigo !!! Encontra ele em:
      http://busca.superdownloads.com.br/busca/vertrigo.s1.html

  14. Avatar de CrazyGod
    CrazyGod

    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

    1. Avatar de lmx
      lmx

      boas…
      pode utilizar apenas um campo do resultset retornado…

      cmps

  15. Avatar de Rawallon
    Rawallon

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

    1. Avatar de Bruno.
      Bruno.

      Pode postar seu código ?

  16. Avatar de AndreLC
    AndreLC

    Muito bom o tutorial.

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

    Obrigado.

    Cumprimentos,
    AndreLC

  17. Avatar de Márcio
    Márcio

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

    1. Avatar de Hélio Moreira
      Hélio Moreira

      Ainda bem que pude ajudar.

      Qualquer dúvida disponha.

      Cumprimentos,
      Hélio Moreira

  18. Avatar de Zé

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

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

    Cumps

  20. Avatar de Pedro André
    Pedro André

    Boa tarde Zé, Suponho que podes tornar “global” a ligaçao a base de dados, crias uma public string ligacão do genero:

    public string ligacao = “SERVER=servidor” +
    “DATABASE=bd;” +
    “UID=user;” +
    “PASSWORD=password”;

    Agora imagina que crias uma new form, dentro dessa new form clicas uma variavel do tipo stringo e qdo fizeres o evento “click” para essa nova form, é so:

    nomedanewform.ligaçao = ligacao;

    Espero ter ajudado.

    Cumps

  21. Avatar de Sara
    Sara

    Entao e por exemplo, eu estou a fazer uma aplicação, em que pode ser para diversas bases de dados, a intenção seria, ao querer mudar de BD abrir uma janela, para que o utilizador (que faz de conta que nao percebe nada disto) que de forma simples, consiga mudar facilmente de bd….