如何在子表中插入记录?

时间:2012-08-25 07:48:18

标签: c# asp.net mysql

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

video table  
-------------
Variable(pk),
Title,
User(fk for userTbl)
user table
-----------
User(pk),
Pass
recommendedvideos table
------------------------------
Variable(pk, fk for videoTBL),
User(pk, fk for userTBL),
date,
status

我的问题是,当我想在推荐视频表中插入记录时,我遇到问题,虽然我观察到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();

我收到此错误

  

无法添加或更新子行:外键约束失败(aspdbrecommendedvideos,CONSTRAINT recommendedvideos_ibfk_1 FOREIGN KEY(Variable)参考videoVariable))

我的代码有什么问题?

1 个答案:

答案 0 :(得分:1)

编辑注意到未在您的声明中正确设置参数 !任何参数都必须包含前面的@(假设您使用的是 SqlParameter和SqlCommand 对象。如果您使用的是 OleDbCommand < / em> 使用this syntax代替

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();