2012-08-25 120 views
1

我有3個表名爲uservideorecommendedvideosuser表保存關於註冊用戶的信息,並且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 

我的問題是,當我想插入recommendedvideos表中的記錄我面臨着一個問題,雖然我觀察約束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,約束recommendedvideos_ibfk_1外鍵(Variable)參考文獻videoVariable)。)

我的代碼出了什麼問題?

+0

你怎麼樣進行的第一次密鑰推薦表? –

回答

1

編輯只注意到你沒有設置參數正確的語句中!任何參數都必須在前面@(假設你使用的是SqlParameter和的SqlCommand對象。如果你正在使用的OleDbCommand使用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(); 
+0

親愛的Pilgerstorfer 我確定表格視頻中的變量字段有一個值,我想在推薦視頻表中插入相同的值,並且也在用戶表中填寫用戶字段,我也在vs2010中使用調試工具,但是似乎每件事情都在努力克非常好。你有什麼想法嗎? TQ –

+0

重寫了已知細節的答案 - 希望有所幫助! OMG! –

+0

OMG!我做了一個不明智的錯誤!它現在有效。 Tq這麼多我的朋友:) –

相關問題