插入语句中的错误C#/ MySQL多个select语句

时间:2012-03-24 18:41:57

标签: c# mysql database

从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();

1 个答案:

答案 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)
         );";