Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ';无法添加或更新子行:外键约束失败';错误_C#_Mysql - Fatal编程技术网

C# ';无法添加或更新子行:外键约束失败';错误

C# ';无法添加或更新子行:外键约束失败';错误,c#,mysql,C#,Mysql,所以在我的institutions表中,我已经预先填充了一个institution Id,并将其存储在我的C#code中 我正试图将一个角色添加到角色表中,在该表中我同样需要插入我已经从institutions表中捕获并存储在C#中的机构Id。机构Id是角色表中的外键 问题是,我这样做: MySqlCommand mysqlcom = new MySqlCommand("INSERT INTO roles(RoleId, RoleType, InstitutionId) VALUES

所以在我的institutions表中,我已经预先填充了一个institution Id,并将其存储在我的C#code中

我正试图将一个角色添加到角色表中,在该表中我同样需要插入我已经从institutions表中捕获并存储在C#中的机构Id。机构Id是角色表中的外键

问题是,我这样做:

 MySqlCommand mysqlcom = new MySqlCommand("INSERT INTO roles(RoleId, RoleType, InstitutionId) VALUES('(uuid_to_bin(uuid()))', " +
            "'@RoleType', '@InstitutionId')", 
            mysqlcon);
        mysqlcom.Parameters.Add("@RoleType", MySqlDbType.VarChar).Value = roleType;
        mysqlcom.Parameters.Add("@InstitutionId", MySqlDbType.Binary).Value = InstitutionModel.InstitutionId;
        mysqlcon.Open();
        int isSuccess = mysqlcom.ExecuteNonQuery();
得到这个:

MySql.Data.MySqlClient.MySqlException: 'Cannot add or update a child row: a foreign key constraint fails (`TestDB`.`roles`, CONSTRAINT `InstitutionId_Roles_FK` FOREIGN KEY (`InstitutionId`) REFERENCES `institutions` (`InstitutionId`) ON DELETE CASCADE ON UPDATE CASCADE)'

InstitutionId
是一个二进制16(UUID),我将它适当地存储为
byte[]
,它肯定是正确的id,所以我不明白MySQL为什么不让我这么做。有什么办法可以解决这个问题吗?

找到了问题。。。。我在做
'@InstitutionId'
,而不仅仅是
@InstitutionId
。。。。FML