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 selecioná-la na aba .Net. A figura abaixo ilustra como o componente será exibido depois de adicionado.
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.
Em seguida vamos criar as variáveis globais para acesso:
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á:
Explicando o MySQLConnection
Comentando este código enorme, que parece complicado, mas não é, teremos:
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:
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:
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.
Continuando os comentários...
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...
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:
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:
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.
HARDWARE
Entendendo o seu computador
O que há dentro do meu computador?
Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.
Você Sabia?
Civilization
A empresa Take-Two pagou à Infogrames mais de 22 milhões de dólares pelos direitos de Civilization, em novembro de 1994. Ainda sobre este título, Sid Meier, um dos seus fundadores, é o profissional da área dos games mais premiado em todo o mundo.
Mario em Donkey Kong
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.
Final Fantasy X
O jogo Final Fantasy X para o Sony Playstation 2 vendeu, apenas no dia do seu lançamento, 1.455.732 cópias, estabelecendo um recorde de vendagem para as primeiras 24 horas de um game. Méritos da SquareSoft, que desenvolveu um excelente produto!
Ábaco
O ábaco é o dispositivo de cálculo mais antigo construído e conhecido pelo homem. Suas formas mais primitivas datam de 400 a.C. e eles foram encontrados na China e na Babilônia. Para saber mais sobre a história dos computadores, clique aqui.
Máquina de Pascal
A Máquina de Pascal, criada em 1642 pelo filósofo, físico e matemático francês Blaise Pascal, é reconhecida como o primeiro computador do mundo e ele foi criado com o objetivo de calcular impostos. Saiba mais.
Street Fighter 2
Street Fighter 2, lançado para o Super Nintendo no início dos anos 90, foi o principal responsável pelo aumento nas vendas deste console. Graças ao sucesso do título nos Arcades e à perfeita adaptação ao console, muitos consumidores adquiriram o SNES para jogarem o título em casa. Saiba mais.
Cuidados com o notebook
Utilizar seu notebook em camas, sofás ou qualquer superfície macia pode obstruir as entradas e saídas de ar, elevando a temperatura e provocando danos a diversos componentes. Utilize-o sempre sobre uma superfície rígida. Saiba mais aqui.
Space Invaders
A partida mais longa do clássico Space Invaders durou incríveis 38 horas e 32 minutos e esta façanha foi conseguida por um jogador de apenas 12 anos! O jogo, claro, podia ser pausado para alimentação e descanso, mas ainda assim o recorde, estabelecido no dia 02/09/1980, ainda não foi quebrado. Saiba mais.
River Raid
O épico jogo River Raid, do Atari, foi desenhado e boa parte de sua programação foi feita por uma mulher: Carol Shaw, uma excelente programadora e funcionária da Activision em 1982. Saiba mais sobre a história deste incrível jogo, aqui.
PDP-1
O primeiro computador a conseguir rodar o jogo Spacewar era o PDP-1, que custava 120 mil dólares e pertencia ao Massachusetts Institute of Technology. O jogo demorou 200 horas para ser desenvolvido, em 1962, e seu criador foi um cientista da computação chamado Steve Russel.
Tetris
O título Tetris detém o recorde de jogo mais adaptado de todos os tempos. No total foram mais de 60 plataformas diferentes que receberam alguma versão do quebra-cabeças criado por Alexey Pajitnov. Conheça mais sobre este incrível jogo clicando aqui.
Asteroids
O título Asteroids, do Atari, possui recorde de pontuação há 30 anos. Em 1982 um americano chamado Scott Safran atingiu a marca de 41.336.440. Atualmente ele faz parte de um minúsculo grupo de jogadores que conseguiram manter seus recordes por mais de 30 anos.
Mouse
O mouse foi criado em 9 de dezembro de 1968, por um americano chamado Douglas Engelbart, que o batizou de "XY Position Indicator for a Display System". Conheça a história do mouse clicando aqui.
Nintendo Wii
Nos primeiros oito dias após o lançamento do console Nintendo Wii foram vendidas 600 mil unidades. Isso equivale a quase um por segundo e estes incríveis números são referentes às vendas apenas nos EUA!
Nintendo Entertainment System
O console Nintendo Entertainment System (NES), da Nintendo, detém o recorde de videogame mais clonado em todo o mundo. Já foram catalogados mais de 300 aparelhos diferentes capazes de reproduzir seus jogos! Saiba mais sobre ele aqui.
Duck Hunt
Ao completar o nível 99 do jogo Duck Hunt, para Nintendo, o jogo retorna ao primeiro nível, mas um bug impede que se acerte os patos neste recomeço. Este é um exemplo do que é chamado no mundo dos games de "Kill Screen".
Mega Man
A primeira versão do clássico Mega Man, para Nintendo 8 bits, tem seu recorde de pontos estabelecido em 03/11/2006, por David Archey, que cravou 2.396.700 pontos, terminando o jogo.
Ultima Online
Criar um jogo é muito mais complexo do que parece. São milhares, às vezes, milhões de linhas de código. Isso não é exagero! Apenas o jogo Ultima Online possui 6.006.313 linhas de programação, totalizando 25.103.295 palavras