修改数据库C#中的数据

时间:2014-06-04 04:44:27

标签: c# database

大家好我想在我的数据库中修改一段数据,这是我正在使用的代码部分。

    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;
        }

    }

所以我运行调试,我更改其中一个条目,我点击修改成员按钮,然后我得到一个消息框说“记录无法删除或更改,因为表'属性'包括相关记录”调试仍然和我没有任何错误。

谢谢。

1 个答案:

答案 0 :(得分:2)

您尝试执行违反相关表的参照完整性规则的操作。例如,如果在“many”表中存在相关记录时尝试以一对多关系删除或更改“one”表中的记录,则会发生此错误。

如果要删除或更改记录,请先从“许多”表中删除相关记录。在您的情况下,您必须尝试更新外键列,这是指其他表的记录。

从您的代码中,可以轻松地假设表 club_members 中的列MemberID必须是foriegn键,引用Member表的行。这就是你弄得一团糟的地方。只需删除/更新所需的记录,就不会违反参照完整性。