我有3个名称为user
,video
和recommendedvideos
的表格。
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();
我收到此错误
无法添加或更新子行:外键约束失败(
aspdb
。recommendedvideos
,CONSTRAINTrecommendedvideos_ibfk_1
FOREIGN KEY(Variable
)参考video
(Variable
))
我的代码有什么问题?
答案 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();