insert语句中出现错误C#/MySQL多选语句
本文关键字:语句 MySQL 错误 insert | 更新日期: 2023-09-27 18:28:50
我有一个小问题,要从C#中的两个不同表插入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();
如果问题是您列出的标题:
这是现在验证的sqlfiddle(表都是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)
);";