我正在编写一个使用ASP.NET,C#以及使用MYSQL的网站。 我需要能够使用相同的child_id记录两行;
我的问题是这一句话,它插入一行并跳过最后一行。
//data.ChldrenRecord.Service contain two records
// babysit, and tutor
foreach (string s in data.ChildrenRecord.Services)
{
query += (" INSERT INTO ServiceChildren SET service='" + s + "', child_id=LAST_INSERT_ID();");
}
所以表应该看起来像这样
id service child_id
1 babysit 1
2 tutor 1
我使用Last_INSERT_ID()因为child_id是外键。我在另一个表中创建一个记录,其主键是child_id。之后,我使用LAST_INSERT_ID()来引用一个记录主键child_id,以便我可以在我的ServiceChildren表中使用它。
因为它看起来像我的桌子:
id service child_id
1 babysit 1
我想我现在正走在正确的轨道上。如果我直接登录到数据库,这个语句有效:
SET @last_id = LAST_INSERT_ID();
//then insert statements
INSERT INTO ServiceChildren(service, child_id) VALUES('babysit', @last_id);
INSERT INTO ServiceChildren(service, child_id) VALUES('tutor', @last_id);
但在我的C#中,ASP.NET代码行 SET @last_id = LAST_INSERT_ID(); 什么都不做,甚至用先前的insert语句填充表。
答案 0 :(得分:0)