[英]Error - Cannot add or update a child row: a foreign key constraint fails
我有兩張桌子
purchase(purchId,date,empId,supId)
item(itemID,name,qty,unit_price)
和,
purchase_item(purchId,itemID,qty,unit_price)
購買表和項目表可以很好地更新,但是當我嘗試更新purchase_item
,
不能添加或更新子行,外鍵約束失敗(
bookshop
。purchase_item
,約束purchase_item_ibfk_1
外鍵(purchId
)參考purchase
(purchId
)ON DELETE CASCADE ON UPDATE CASCADE)
使用的更新語句,
Insert into purchase_item values('" + invoice + "','" + ItemId + "','" + qty + "','" + unitPrice + "')"; (working on a C# project)
代碼,w
int ItemId = Convert.ToInt32(textBox3.Text);
string ItemName = textBox4.Text;
string Category = textBox5.Text;
int qty = Convert.ToInt32(textBox7.Text);
double UnitPrice = Convert.ToDouble(textBox6.Text);
string supname = textBox8.Text;
int supId = 12345;
int invoice = Convert.ToInt32(textBox9.Text);
string query1 = "Insert into item values('" + ItemId + "','" + ItemName + "','" + Category + "','" + qty + "','" + UnitPrice + "')";
int rows = db.SaveUpdateDelete(query1);
DateTime d = DateTime.Now;
int day = d.Day;
int month = d.Month;
int year = d.Year;
string dt = year + "/" + month + "/" + day;
string query = "Insert into purchase values("+invoice+",'"+dt+"',"+username+","+supId+")";
string query2 = "Insert into purchase_item values('" + invoice + "','" + ItemId + "','" + qty + "','" + UnitPrice + "')";
int rows1 = db.SaveUpdateDelete(query);
int rows2 = db.SaveUpdateDelete(query2);
if (rows==1 && rows1==1 && rows2==1)
{
MessageBox.Show("Data Entered Successfully.");
}
else
{
MessageBox.Show("Failed to Insert Data.");
}
之所以出現此錯誤,是因為您試圖根據當前存儲在購買表和項目表中的值,將一行不具有有效值的itemID或purchId字段添加到purchase_item。 如果您發布更多代碼,我可以幫助您診斷具體原因。
嘗試執行以下步驟,希望您會遇到什么問題:
string query1 = "Insert into item values('" + ItemId + "','" + ItemName + "','" + Category + "','" + qty + "','" + UnitPrice + "')"; int rows = db.SaveUpdateDelete(query1);
你在“行”中得到什么,然后
更改您的代碼以首先插入購買,然后創建項目列表,然后插入purchase_items。
如果您在Purchase_items中使用的購買ID,則為。
您可以在遇到此問題的哪一行代碼上確認另一位。
更新:再做一件事,請首先傳遞靜態值以驗證SP是否工作正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.