我为更新按钮和删除按钮编写了代码。 我的目的是更新并删除我插入数据库的数据(使用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,但是当我按下更新按钮时它们不会改变
答案 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)
我并不是说听起来很刺耳,但你的代码不是很好。需要改进的地方:
MySqlDataAdapter
这三点将导致以下代码:
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!");
}