我正在使用一个使用MySQL数据库的C#应用程序。我试图插入一个表2个的外键,但我得到一个错误:MySQL插入到带有2个外键的表中
不能添加或更新子行,外键约束失败(thedatabase
tblC
,约束tblC_ibfk_1
外键(ID
)引用。 tblA
(ID
)ON DELETE NO ACTION ON UPDATE CASCADE)
表结构是
TBLA - ID,COL2,COL3,COL4 ...
TBLB - ID,COL2,COL3,COL4。 ..
TBLC - tblA.ID,tblB.ID,COL3,COL4,COL5 ...
我看过了论坛,并为我的生命,我找不到的语法,使这行得通。
这是我用来连接。我已经确认ID存在于父表中。
//Connect to the database
MySqlConnection connection = new MySqlConnection(connectionString);
MySqlCommand cmd;
connection.Open();
//Insert new record into database
cmd = connection.CreateCommand();
cmd.CommandText = "INSERT INTO tblC(tblA_ID, tblB_ID, col3, col4, col5) VALUES(@tblA_ID, @tblB_ID, @col3, @col4, @col5);";
cmd.Parameters.AddWithValue("@tblA_ID", tblA_ID);
cmd.Parameters.AddWithValue("@tblB_ID", tblB_ID);
cmd.Parameters.AddWithValue("@col3", col3);
cmd.Parameters.AddWithValue("@col4", col4);
cmd.Parameters.AddWithValue("@col5", col5);
cmd.ExecuteNonQuery();
connection.Close();
尝试发布一些代码以及错误消息。你在使用实体框架吗?它是一个网络应用程序? – 2015-04-03 22:29:14
不是一个Web应用程序,只是一个普通的C#应用程序。数据库是为了以后与本地web应用程序共享(mysql的原因)。 – Beaker 2015-04-03 23:06:05
您是否尝试过手动运行sql? – 2015-04-04 07:46:19