【发布时间】:2015-06-09 00:43:00
【问题描述】:
我正在开发一个使用 MySQL 数据库的 C# 应用程序。我正在尝试使用 2 个外键插入一个表,但出现错误:
无法添加或更新子行:外键约束失败 (thedatabase.tblC, CONSTRAINT tblC_ibfk_1 FOREIGN KEY (ID) REFERENCES tblA (ID) ON DELETE NO ACTION ON更新级联)
表结构是
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();
【问题讨论】:
-
尝试发布一些代码以及错误消息。你在使用实体框架吗?它是一个网络应用程序吗?
-
不是一个网络应用,只是一个普通的 C# 应用。该数据库旨在稍后与本地 Web 应用程序共享(使用 mysql 的原因)。
-
你试过手动运行sql吗?