У меня есть ошибка. В нем говорилось о нарушении ограничения первичного ключа "PK_medicalregistration". Не удается вставить повторяющийся ключ в ДБО.медицинская Регистрация'. Повторяющееся значение ключа: (17002) Ребята пожалуйста помогите мне
public void updatedata() { try { DialogResult dr = MetroMessageBox.Show(this, "Are You Really want to update dependent Record..", "Dependent Update Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (dr == DialogResult.No) { return; } else { con.Open(); cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandText = "update MedicalRegistration set Client_ID = '" + txtID.Text + "', Date_Registered = '" + dtpDate.Text + "', Date_of_Released = '" + dateTimePicker1.Text + "', Client_Name = '" + txtClient.Text + "', BirthDate = '" + dtpBday.Text + "', Age = '" + txtAge.Text + "', Gender = '" + cbGender.Text + "', Civil_Status = '" + cbStatus.Text + "', Address = '" + txtAddress.Text + "', Cellphone_Number = '" + mtxtCell.Text + "', Telephone_Number = '" + mtxtTell.Text + "', Religion = '" + txtReligion.Text + "', Place_of_Birth = '" + txtPOB.Text + "', Primary_Education = '" + txtPrimary.Text + "', Secondary_Education = '" + txtSec.Text + "', Tertiary_Education = '" + txtTertiary.Text + "', Final_Diagnosis = '" + txtFinalDiagnosis.Text + "', Amount = '" + txtAmount.Text + "', Claimant_Name = '" + txtClaimant.Text + "'"; cmd.ExecuteNonQuery(); MetroMessageBox.Show(this, "Successfuly Update Data", "UPDATE Data", MessageBoxButtons.OK, MessageBoxIcon.Question); con.Close(); } } catch (Exception ex) { MessageBox.Show("Try Again" + ex); } }
Что я уже пробовал:
Выше приведен мой код кнопки обновления, когда я нажал кнопку обновления, он выдал ошибку нарушения ограничения первичного ключа 'PK_medicalregistration'. Не удается вставить повторяющийся ключ в ДБО.медицинская Регистрация'. Повторяющееся значение ключа: (17002). Помогите!
Bryian Tan
Ошибка явно указывает на код, пытающийся вставить запись с первичным ключом, который уже существует в таблице. Я предполагаю, что Client_ID является первичным ключом, оператор update должен иметь значение WHERE Client_ID = txtID.Текстовое предложение, верно? или как запрос узнает, какую запись нужно обновить? Прямо сейчас ваш запрос пытается обновить все записи в таблице.