将数据更新到mySql数据库时出现问题
这是我的代码:
public void commitUbah(string password, string nama, string prodi, string angkatan)
{
DialogResult dialogResult = MessageBox.Show("Apakah anda akan mengubah data anda ? ","Konfirmasi", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
try
{
MySqlCommand ganti = new MySqlCommand("UPDATE `anggotaan` SET `UserPassword`=@password,`NamaLengkap`=@nama,`Prodi`=@prodi,`Angkatan`=@angkatan WHERE `NIM`='" + uba.dft_NIM.Text+"')", connect);
connect.Open();
ganti.Parameters.AddWithValue("@UserPassword", password);
ganti.Parameters.AddWithValue("@NamaLengkap", nama);
ganti.Parameters.AddWithValue("@Prodi", prodi);
ganti.Parameters.AddWithValue("@Angkatan", angkatan);
ganti.ExecuteNonQuery();
MessageBox.Show("Mahasiswa " + nama + ", anda berhasil didaftarkan . Silahkan Login");
connect.Close();
MessageBox.Show("Anda telah mengubah data anda.\r\n Anda akan keluar dari program dan silahkan mengulang proses login");
Application.Restart();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else if (dialogResult == DialogResult.No)
{
}
}
当我执行程序时,它返回命令执行期间遇到的"致命错误。" ,我不知道在哪里找到麻烦制造者代码。
答案 0 :(得分:0)
你的SQL应该归结为
MySqlCommand ganti = new MySqlCommand("UPDATE `anggotaan` SET `UserPassword`=@password,`NamaLengkap`=@nama,`Prodi`=@prodi,`Angkatan`=@angkatan WHERE `NIM`=@nim)", connect);
ganti.Parameters.AddWithValue("@password", password);
ganti.Parameters.AddWithValue("@nama", nama);
ganti.Parameters.AddWithValue("@prodi", prodi);
ganti.Parameters.AddWithValue("@angkatan", angkatan);
ganti.Parameters.AddWithValue("@nim", uba.dft_NIM.Text);
你在sql密码中声明但是你已经声明了nama但是有了NamaLengkap的参数的UserPassword的参数。我通常也会使用方括号而不是转义名称..但是如果它对你有效..