C#插入表,报错

标签 c# mysql

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

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/

相关文章:

mysql - 为什么我看到 "COLLATION ' xxx' is not valid for CHARACTER SET 'yyy' "

php - 在 MySQL 中使用唯一引用作为主键

c# - 在 C# 中退出控制台应用程序之前处理 EF DbContext 的重要性

c# - 使用授权属性时的 Cors 策略错误

c# - 如何接受带有 selenium firefox 驱动程序的自签名 SSL 证书?

python - 使用 Django ORM 进行选择性事务管理

php - 如何从 MAMP 服务器添加图像 php 文件

c# - 盐长度与总哈希长度之比

c# - 使用定时器实现双击事件

php - 在 CakePHP 中查找 ('count' ) 有多贵?