更新和删除按钮 C#

Update and delete buttons C#

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

更新按钮代码:

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 类型的未处理异常被扔了)。当我退出时 window 这一行被选中 SDA.SelectCommand.ExecuteNonQuery();

我对插入按钮使用相同的指令,但它有效。

你能帮帮我吗?

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

更新不需要 INTO 但只需要

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

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

Delete don't need value you delete the rows with match where condition eg:

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

确保正确的 where 条件

并在字符串连接中小心,您有 sql 注入的风险

我不想听起来很刺耳,但是你的代码不是很好。改进点:

  1. 使用正确SQL
  2. 不需要时停止使用MySqlDataAdapter
  3. 使用参数化查询来避免 SQL 注入(不:没有任何理由不这样做!)

这三点会导致下面的代码:

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!");
}