更新和删除按钮C#

时间:2016-11-24 10:49:52

标签: c# mysql sql sql-delete

我为更新按钮和删除按钮编写了代码。 我的目的是更新并删除我插入数据库的数据(使用phpmyadmin在mysql中创建)。

更新按钮代码:

void ModificaBtnClick(object sender, EventArgs e)
    {
        Connessione.Open();
        MySqlDataAdapter SDA=new MySqlDataAdapter("UPDATE INTO GARA set nome_gara='"+textBox1.Text+"',giudice='"+textBox2.Text+"',località='"+textBox3.Text+"',data='"+textBox4.Text+"',tpsopm='"+textBox5.Text+"',tpmopm='"+textBox6.Text+"',tpstot='"+textBox7+"',tpmtot='"+textBox8.Text+"')VALUES'"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"','"+textBox4.Text+"','"+textBox5.Text+"','"+textBox6.Text+"','"+textBox7.Text+"','"+textBox8.Text+"')",Connessione);
        SDA.SelectCommand.ExecuteNonQuery();
        Connessione.Close();

        MessageBox.Show("Dati modificati correttamente!");

    }

删除按钮代码:

void CancellaBtnClick(object sender, EventArgs e)
    {
        Connessione.Open();
        MySqlDataAdapter SDA=new MySqlDataAdapter("DELETE FROM GARA(nome_gara,giudice,località,data,tpsopm,tpmopm,tpstot,tpmtot)VALUES'"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"','"+textBox4.Text+"','"+textBox5.Text+"','"+textBox6.Text+"','"+textBox7.Text+"','"+textBox8.Text+"')",Connessione);
        SDA.SelectCommand.ExecuteNonQuery();
        Connessione.Close();
        MessageBox.Show("Dati cancellati correttamente!");
    }

我没有语法错误,但是当我运行程序并尝试修改或删除数据时,编译器会显示一个未处理的异常(抛出MySql.Data.MySqlClient.MySqlException类型的未处理异常)。当我退出窗口时,此行被选中SDA.SelectCommand.ExecuteNonQuery();

我对插入按钮使用相同的指令,但它可以工作。

请帮帮我吗?

修改:我已尝试过您的解决方案,但这些值不会更新到数据库中。我可以将它们修改为dataGridView,但是当我按下更新按钮时它们不会改变

2 个答案:

答案 0 :(得分:2)

更新不需要INTO,只需

UPDATE   GARA 
 SET set nome_gara='"+textBox1.Text+"'
,giudice='"+textBox2.Text+"'
,località='"+textBox3.Text+"'
,.....

最终添加条件以更新您需要的行

删除不需要的值,您可以删除符合条件的行,例如:

DELETE FROM GARA
WHERE nome_gara='"+textBox1.Text+"'"

确保适当的条件

并且在字符串连接中要小心你有进行sql注入的风险

答案 1 :(得分:2)

我并不是说听起来很刺耳,但你的代码不是很好。需要改进的地方:

  1. 使用正确的SQL
  2. 当您不需要
  3. 时停止使用MySqlDataAdapter
  4. 使用参数化查询来避免SQL注入(并且没有:没有任何借口不这样做!)
  5. 这三点将导致以下代码:

    void ModificaBtnClick(object sender, EventArgs e)
    {
        Connessione.Open();
        MySqlCommand cmd = new MySqlCommand("UPDATE GARA set nome_gara=@nomegara,giudice=@giudice,località=@localita,data=@data ...",Connessione);
    
        cmd.Parameters.AddWithValue("@nomegara", textBox1.Text);
        cmd.Parameters.AddWithValue("@giudice", textBox2.Text);
        ...
    
        cmd.ExecuteNonQuery();
    
        MessageBox.Show("Dati modificati correttamente!");
    }
    
    void CancellaBtnClick(object sender, EventArgs e)
    {
        Connessione.Open();
        MySqlCommand cmd =new MySqlCommand("DELETE FROM GARA WHERE Field = @value, ...",Connessione);
    
        cmd.Parameters.AddWithValue("@value", ...);
        ...
    
        cmd.ExecuteNonQuery();
        MessageBox.Show("Dati cancellati correttamente!");
    }