【问题标题】:Error - Cannot add or update a child row: a foreign key constraint fails错误 - 无法添加或更新子行:外键约束失败
【发布时间】:2018-09-09 04:03:33
【问题描述】:

我有两张桌子,

purchase(purchId,date,empId,supId)
item(itemID,name,qty,unit_price)

还有,

purchase_item(purchId,itemID,qty,unit_price)

购买表和商品表更新正常,但是当我尝试更新 purchase_item 时,

无法添加或更新子行:外键约束失败 (bookshop.purchase_item, CONSTRAINT purchase_item_ibfk_1 FOREIGN KEY (purchId) REFERENCES purchase (purchId) ON DELETE更新级联的级联)

已使用更新语句,

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.");
        }           

【问题讨论】:

    标签: c# mysql


    【解决方案1】:

    您收到此错误是因为您尝试根据当前存储在 purchase 和 item 表中的值向 purchase_item 添加行,但该行的 itemID 或 purchId 字段没有有效值。如果您发布更多代码,我可以帮助您诊断具体原因。

    【讨论】:

      【解决方案2】:

      尝试按照步骤进行操作,希望您能找到问题所在:

      1. 首先检查您的查询是否在以下几行中成功执行

      string query1 = "Insert into item values('" + ItemId + "','" + ItemName + "','" + Category + "','" + qty + "','" + UnitPrice + "')"; int rows = db.SaveUpdateDelete(query1);

      你在“行”中得到了什么,然后

      首先更改插入购买的代码,然后创建项目列表,然后插入购买项目。

      如果您在 Purchase_items 中使用购买 ID。

      您能否再确认一下,您在哪一行代码中遇到了这个问题。

      更新:再做一件事,请先传递静态值以验证 SP 是否正常工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-05-10
        • 2022-12-10
        • 2020-10-04
        相关资源
        最近更新 更多