gpt4 book ai didi

C#插入表,报错

转载 作者:可可西里 更新时间:2023-11-01 07:30:34 28 4
gpt4 key购买 nike

我在向表中插入数据时遇到问题。我不知道数据库模型或模式是什么样的,因为我只是在遇到此错误之前查找并修复现有程序的错误

MySql.Data.MySqlClient.MySqlException (0x80004005): Cannot add or update a child row: a foreign key constraint fails (`my_database`.`movies_class`, CONSTRAINT `fk_movies_class_movies1` FOREIGN KEY (`movie_id`) REFERENCES `movies_notworking` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION)

at MySql.Data.MySqlClient.MySqlStream.ReadPacket()

at MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId)

at MySql.Data.MySqlClient.Driver.GetResult(Int32 statementId, Int32& affectedRows, Int64& insertedId)

at MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)

at MySql.Data.MySqlClient.MySqlDataReader.NextResult()

at MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)

at MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()

这是我的代码

public void tabinsertcheck(MySqlConnection myconn, DataGridView dgv, int intid)
{
for (int i = 0; i < dgv.Rows.Count; i++)
{
if (dgv[0, i].Value != null)
{
if ((bool)dgv[0, i].Value)
{
StringBuilder sqry = new StringBuilder();
sqry.Append("select max(id) from movies_class");
MySqlCommand cmd = new MySqlCommand(sqry.ToString(), myconn);
int max_id = Convert.ToInt32(cmd.ExecuteScalar())+1;
sqry = new StringBuilder();
sqry.Append(String.Format("insert into movies_class values({0},{1},{2})",
max_id,intid, dgv[3, i].Value.ToString()));

if (myconn.State == ConnectionState.Closed)
myconn.Open();
cmd = new MySqlCommand(sqry.ToString(), myconn);
cmd.ExecuteNonQuery();
cmd.Dispose();
myconn.Close();
}
}

}
}

我正在使用循环,因为我在数据库中保存的每个复选框都有很多复选框,而且我不知道如何修复它。提前致谢

最佳答案

您正在尝试向 movies_class 表中插入一行,其中 movie_id 字段的值在 movies_notworking 表中不存在 Id 字段。检查您的数据并确保为表中的引用字段插入正确的值。

关于C#插入表,报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26354416/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com