1

我有 3 个名称为uservideo的表recommendedvideosuser表格保存有关注册用户的信息,表格recommendedvideos保存有关用户选择哪个视频作为他最喜欢的视频的信息。

视频表  
-------------
变量(pk),
标题,
用户(对于 userTbl 的 fk)
用户表
------------
用户(pk),
经过
推荐视频表
------------------------------
变量(pk,对于 videoTBL 的 fk),
用户(pk,对于 userTBL 的 fk),
日期,
地位

我的问题是,当我想在推荐视频表中插入一条记录时,我遇到了一个问题,尽管我遵守了 fk 的约束。

com.CommandText = " Insert into recommendedvideos(Variable, User, Date, Status )"
                    + "VALUES(Variable, User, Date, Status )";

            com.Parameters.AddWithValue("@Variable", Variable);
            com.Parameters.AddWithValue("@User", User);
            com.Parameters.AddWithValue("@Date", Date);
            com.Parameters.AddWithValue("@Status", Status);

            connect.Open();
            com.ExecuteNonQuery();
            connect.Close();

我收到此错误

无法添加或更新子行:外键约束失败 ( aspdb. recommendedvideos, CONSTRAINT recommendedvideos_ibfk_1FOREIGN KEY ( Variable) REFERENCES video( Variable))

我的代码有什么问题?

4

1 回答 1

1

编辑刚刚注意到您没有语句中正确设置参数!任何参数都必须在前面有一个 @(假设您使用的是SqlParameter和 SqlCommand对象。如果您使用的是OleDbCommand,请改用此语法

com.CommandText = " Insert into recommendedvideos(Variable, User, Date, Status )"
                + "VALUES(@Variable, @User, @Date, @Status )";

        com.Parameters.AddWithValue("@Variable", Variable);
        com.Parameters.AddWithValue("@User", User);
        com.Parameters.AddWithValue("@Date", Date);
        com.Parameters.AddWithValue("@Status", Status);

        connect.Open();
        com.ExecuteNonQuery();
        connect.Close();
于 2012-08-25T08:09:42.527 回答