使用c#修改数据库数据

本文关键字:数据 数据库 修改 使用 | 更新日期: 2023-09-27 18:06:40

嗨,伙计们,我正试图修改我的数据库中的一块数据,这里是我使用的代码部分。

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

所以我运行调试,我改变一个条目,我点击修改成员按钮,然后我得到一个消息框说"记录不能被删除或更改,因为表'属性'包含相关记录"调试仍然去,我没有得到任何错误。

谢谢。

使用c#修改数据库数据

您试图执行违反相关表的引用完整性规则的操作。例如,如果您试图删除或更改一对多关系中"one"表中的记录,而"many"表中存在相关记录,则会发生此错误。

如果要删除或更改记录,请首先从"many"表中删除相关记录。在您的例子中,您必须尝试更新外键列,它引用了其他表的记录。

从您的代码中,可以很容易地假设表club_members中的列MemberID必须是一个外键,引用Member表的行。这就是你搞砸的地方。您不能通过简单地删除/更新您想要的记录来违反引用完整性。