从C#中的2个不同的表插入到MySql数据库
我有一点问题这是我发生错误的代码
command.CommandText =
@"INSERT INTO personen (Name, Surname, GenderID, BirthplaceID)
VALUE @Name, @Surname, (SELECT GenderID FROM gender WHERE Gender = @GenderID),
(SELECT BirthplaceID FROM place WHERE placename = @BirthplaceID);";
当我替换“@”语句并只填写名称时,它可以正常工作。 所以我想知道问题出在哪里。
问题也不是像某些答案所说的参数,因为我已经添加了它们(见下文)。
insertname = data.Name;
insertsurname = data.Surname;
insertgenderid= data.Gender;
insertbirthplaceid= data.Birthplace;
command.Parameters.AddWithValue("@Name", insertname);
command.Parameters.AddWithValue("@Surname", insertsurname);
command.Parameters.AddWithValue("@GenderID", insertgenderid);
command.Parameters.AddWithValue("@BirthplaceID", insertbirthplaceid);
command.ExecuteNonQuery();
答案 0 :(得分:3)
如果问题是您列出的标题:
这是sqlfiddle of this validating now(表格都是int,因为语法就是我们要做的,类型)
首先,它应该是VALUES而不是VALUES。第二,VALUES必须用括号括起来。
command.CommandText =
@"INSERT INTO personen (Name, Surname, GenderID, BirthplaceID)
VALUES (@Name, @Surname,
(SELECT GenderID FROM gender WHERE Gender = @GenderID),
(SELECT BirthplaceID FROM place WHERE placename = @BirthplaceID)
);";