大家好我想在我的数据库中修改一段数据,这是我正在使用的代码部分。
private void btnModifyMember_Click(object sender, EventArgs e)
{
string memberid = txtMemberID.Text;
string lastname = txtLastName.Text;
string firstname = txtFirstName.Text;
string phone = txtPhoneNumber.Text;
string email = txtEmail.Text;
string update = "UPDATE [Club_Member] SET [MemberID]=@memberid,[LastName]=@lastname,[FirstName]=@firstname,[Phone]=@phone,[E_mail]=@email";
OleDbCommand dbCmd = new OleDbCommand(update, dbConn);
dbCmd.Parameters.AddWithValue("@MemberID", memberid);
dbCmd.Parameters.AddWithValue("@LastName", lastname);
dbCmd.Parameters.AddWithValue("@FirstName", firstname);
dbCmd.Parameters.AddWithValue("@Phone", phone);
dbCmd.Parameters.AddWithValue("@E_mail", email);
try
{
dbCmd.ExecuteNonQuery();
MessageBox.Show("Update Complete");
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
return;
}
}
所以我运行调试,我更改其中一个条目,我点击修改成员按钮,然后我得到一个消息框说“记录无法删除或更改,因为表'属性'包括相关记录”调试仍然和我没有任何错误。
谢谢。
答案 0 :(得分:2)
您尝试执行违反相关表的参照完整性规则的操作。例如,如果在“many”表中存在相关记录时尝试以一对多关系删除或更改“one”表中的记录,则会发生此错误。
如果要删除或更改记录,请先从“许多”表中删除相关记录。在您的情况下,您必须尝试更新外键列,这是指其他表的记录。
从您的代码中,可以轻松地假设表 club_members 中的列MemberID
必须是foriegn键,引用Member
表的行。这就是你弄得一团糟的地方。只需删除/更新所需的记录,就不会违反参照完整性。