Minicursos - C#

Gravando Dados no Banco


Bem, agora que já temos a base de dados criada e o conector .Net do MySQL instalado, vamos ver como gravar dados no MySQL a partir do C#.

O primeiro passo é inserir a referência ao MySQL no Solution Explorer. Conforme já explicado, basta clicar com o botão direito em References, depois em Add, Add Reference e seleciona-la na aba .Net. A figura abaixo ilustra como o componente será exibido depois de adicionado.

Gravando Dados no Banco

Agora vamos abrir o formulário de cadastro e começar a inserir os códigos que farão a comunicação com o banco. O primeiro passo é adicionar o namespace using MySql.Data.MySqlClient; no início do código.

Gravando Dados no Banco

Em seguida vamos criar as variáveis globais para acesso:

Gravando Dados no Banco

A variável do tipo MySQLConnection é responsável por efetuar a conexão com o banco. É através dela que serão enviados dados como usuário e senha para o acesso ao SGBD.

Já a variável do tipo MySQLCommand fará o armazenamento e o envio do comando que queremos executar.

Vejam como tudo é simples e intuitivo até aqui:
- MySQLConnection é responsável pela conexão.
- MySQLCommand é responsável pelo envio do comando.

Continuando...
Para que a variável minhaConexao, do tipo MySQLConnection, possa efetuar a conexão com o banco é necessário que ela saiba informações como: em qual computador está o banco (pois ele poderia não estar no mesmo computador onde a aplicação está), qual a base de dados que será utilizada, e qual o usuário e sua senha para acesso ao banco. Estes dados são passados a ela como parâmetros. O comando completo, a ser colocado já dentro do bloco de código de inicialização do formulário, será:

Gravando Dados no Banco

Explicando o MySQLConnection

Comentando este código enorme, que parece complicado, mas não é, teremos:

Gravando Dados no Banco

A etapa seguinte já deveria ser sobre inserir código no método Click do botão btnSalvar, mas existe um detalhe importante que deve ser observado antes disso. Temos um campo responsável por receber a data de nascimento do usuário. Devemos esperar que ele digite algo no formato dd/mm/aaaa, mas o campo Date do MySQL só recebe dados no formato aaaa/mm/dd, então devemos fazer essa conversão primeiro, para que não haja erro no momento da inserção de dados. Vou criar um método chamado formataData, que será acionado assim que o botão Salvar for clicado. O código do método será esse:

Gravando Dados no Banco

Abrir janela com código copiável

O método é bastante simples, mas fazendo um breve comentário, o que está acontecendo aí é o recebimento da data em formato brasileiro, em seguida acontece a separação do dia, mês e ano através do método Substring. Na sequência a variável dataUS concatena todas elas na ordem correta a ser enviada ao MySQL e a retorna.

Para receber o retorno desta função eu criei a variável dataFormatada, que já foi inserida na primeira linha do método Click do botão "Salvar", da seguinte forma:

string dataFomatada = formataData(txtDataNascimento.Text);

Agora que já temos a data formatada, podemos continuar. O código todo da função Click do botão Salvar ficará da seguinte forma:

Gravando Dados no Banco

Clique aqui para abrir uma janela com código copiável:

Agora vou comentar este código, que merece muita atenção, já que contém a montagem da nossa primeira string de comando SQL.

Gravando Dados no Banco

Continuando os comentários...

Gravando Dados no Banco

Eu comentei o código todo apenas para explicar o método por completo, mas o que nos interessa aí é a montagem do comando, pegando os dados a partir dos campos do formulário. Na verdade não há nenhuma grande novidade e, repetindo o que foi dito nos comentários, o foco deve ser colocado nas aspas, que é onde 90% dos erros acontecem.

Bem, mas agora vamos executar o código e ver se funciona...

Gravando Dados no Banco

Inseri alguns dados, cliquei em "Salvar" e recebi a mensagem de sucesso. Como programamos para que o sistema só exiba essa mensagem em caso de inserção bem sucedida, nenhum erro ocorreu, mas vou abrir o MySQL e dar um SELECT na tabela "cliente" apenas para demonstrar. Vejam abaixo o resultado:

Gravando Dados no Banco

Aí estão os dados corretamente inseridos no banco!

Ainda podemos melhorar um pequeno detalhe no formulário de cadastro de clientes. Como foi possível notar na execução de vocês, após a mensagem de sucesso, o formulário com os dados inseridos continua aberto, quando o ideal é que ele fosse fechado, para reduzir as chances do usuário tentar cadastrar dois usuários idênticos, o que geraria um erro de duplicação de chave primária no banco de dados. Para impedir isso é muito simples! Basta que adicionemos, após esse MessageBox, o comando Close(). O código deverá ficar assim:

Gravando Dados no Banco

Agora, após o usuário clicar em OK na caixa de mensagem que alertará sobre o sucesso da operação, o formulário de cadastro será automaticamente fechado e o programa retornará para sua tela principal.

Com isso encerramos a parte de inserção de dados. O que é importante guardar daqui é que os comandos de inserção são exatamente iguais a uma inserção pelo Console do MySQL. O que temos de diferente são as variáveis responsáveis por fazerem a conexão com o SGBD e o envio do comando, apenas isso! Na sequência, veremos como utilizar o famoso DataGridView, e com ele removeremos um usuário.



Algumas notícias

Xiaomi vende 52,9 milhões de celulares no segundo trimestre de 2021 e faturamento dispara

A gigante chinesa Xiaomi registrou um aumento de quase 85% no seu faturamento no segundo trimestre de 2021 em comparação ao mesmo período do ano passado. A receita divulgada pela empresa foi de 13,5 bilhões de dólares (algo em torno de 70 bilhões de reais) nos meses de abril a junho deste ano...

Ler Notícia Completa

Galaxy S9 e Galaxy S9 Plus receberão atualização de segurança este mês

A Samsung começou a liberar esta semana, para proprietários dos modelos Galaxy S9 e Galaxy S9 Plus, uma nova atualização de segurança. Por enquanto somente alguns países da Europa receberam o pacote, que deve ser dis...

Ler Notícia Completa

Novas câmeras 'debaixo da tela' da Oppo surpreendem

Para muitos, colocar uma câmera embaixo da tela de um celular era uma tarefa impensável, por conta de diversos problemas técnicos. Os primeiros testes da Oppo que se propuseram a isso geravam imagens de qualidade bastante insatisfatória, já que a captação da luz era prejudicada pela tela. A prim...

Ler Notícia Completa

As memórias DDR5 estão chegando e trarão muitas melhorias

A próxima geração de memórias RAM já possui especificações definidas e promete grande melhoria em relação às atuais DDR4. E o mais importante: mesmo com desempenho bastante superior, elas consumirão menos energia. A tensão de trabalho das memórias DDR5 será de apenas 1.1V contra os 1.2V das atu...

Ler Notícia Completa

Google Chrome consumirá menos memória RAM em breve

O navegador da gigante de buscas da Internet é, sem dúvida, um dos melhores disponíveis, mas é inegável que o consumo de memória RAM por parte dele é exagerado. Este problema já se estende por anos, mas parece que em breve ele terá uma solução. Um novo recurso do Windows 10, chamado SegmentHeap...

Ler Notícia Completa

Você sabia?

Desde o seu lançamento, em 1985, o fantástico jogo Tetris vende pelo menos 70 milhões de unidades por ano em todo o mundo! Os dados são oficiais e fornecidos pela THQ, uma das distribuidoras do título.

A IBM detém o recorde de patentes em um único ano, atingindo a marca de 4186 registros no ano de 2008. Clique aqui e saiba mais sobre esta gigante do mundo da tecnologia.

O personagem Mario só possui bigode porque quando ele foi criado, em 1981, a resolução de tela dos equipamentos disponíveis não permitia que fosse desenhada uma boca, então os desenvolvedores fizeram o grande bigode para contornarem essa limitação tecnológica.

O personagem Mario surgiu pela primeira vez no mundo dos games em um jogo chamado Donkey Kong, lançado em 1981. Mario, que naquela época se chamava Jumpman, não era o personagem principal do jogo, mas ele se tornaria um dos mais famosos personagens do mundo dos games. Saiba mais.

Ajude o Contém Bits com um cafezinho!

Se você gostou do artigo, se ele lhe foi útil de alguma maneira e você quiser ajudar o Contém Bits, saiba que é simples, fácil e rápido. Basta clicar na imagem do PayPal (ou no cafezinho) e seguir as instruções, em ambiente seguro e com o respaldo do Paypal. Eu agradeço muito! :)


Você gostará destes vídeos!