Colocar Resposta 
 
Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
c#/MySQL: Como inserir dados na Base de Dados
07-11-2010, 12:48
Mensagem: #1
c#/MySQL: Como inserir dados na Base de Dados
O Hélio Moreira criou um excelente tutorial em que explica como inserir dados numa base de dados MySQL. Infelizmente a forma de inserir nao e' aconselhavel: permite SQL Injection e outros problemas.

Código:
//Query SQL (codigo original do tutorial)
MySqlCommand command = new MySqlCommand("INSERT INTO tabela_dados (titulo,descricao)" +
"VALUES('" + tb_titulo.Text + "','" + tb_descricao.Text + "')", mConn);

Inserir dados usando Parametros:

Código:
MySqlCommand command = new MySqlCommand(
    "INSERT INTO tabela_dados (" +
              " titulo, descricao " +
    ") VALUES (" +
              " @titulo, @descricao " + // parametros
    ")", mConn);

// adiciona-se o parametro, indicando o nome e o tipo
command.Parameters.Add("@titulo", MySqlDbType.VarChar);

// atribui-se o respectivo valor
command.Parameters["@titulo"].Value = tb_titulo.Text;

// repetimos o mesmo para o seguinte parametro:
command.Parameters.Add("@descricao", MySqlDbType.VarChar);
command.Parameters["@descricao"].Value = tb_descricao.Text;

// Na altura da execucao, todo o trabalho de escapar caracteres especiais e' efectuado pelo comando.
command.ExecuteNonQuery();

Testar

Adicionem um novo botao ao programa com o codigo acima no respectivo evento. A seguir, copiem e colem o texto 'a frente ao negrito nas respectivas caixas. Cliquem no segundo botao e no primeiro.

Titulo: isto e' um teste
Descricao: Se clicarem no primeiro botao, o programa falha com uma excepcao. No segundo, funciona!

Evitar Crash
Quando ocorre um erro a executar uma das instrucoes do MySql, e' gerado uma excepcao (MySqlException). Se nao capturarem essa excepcao, a aplicacao termina. Para evitar esse problema, usem um try/catch.

Código:
try {
    MySqlConnection mConn = // ...

    MessageBox.Show(...)
} catch (MySqlException ex) {
    MessageBox.Show("Erro:!\n" + ex.Message,
         "Informação",MessageBoxButtons.OK,MessageBoxIcon.Error);
}

Fiquem Bem!
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Mensagem neste Tópico
c#/MySQL: Como inserir dados na Base de Dados - Elias_REC - 07-11-2010 12:48

Saltar Fórum:


Utilizadores a ver este tópico: 1 Visitante(s)