使用C#在SQL中更新数据时出现致命错误

时间:2017-10-23 11:23:26

标签: c# mysql visual-studio-2015

将数据更新到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)
        {

        }


    }

当我执行程序时,它返回命令执行期间遇到的"致命错误。" ,我不知道在哪里找到麻烦制造者代码。

1 个答案:

答案 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的参数。我通常也会使用方括号而不是转义名称..但是如果它对你有效..