我有这个方法:
public int GetPreferredRoomID(String roomCategory)
{
int RoomId;
return RoomId = db.Database.ExecuteSqlCommand("SELECT RoomId FROM dbo.Rooms WHERE RoomCategory = " + roomCategory);
}
但是我收到一个错误,说错误的语法接近=
答案 0 :(得分:3)
您无法为变量赋值并将其返回一行。你需要两个陈述。您还必须在撇号中包装文本列。
RoomId = db.Database.ExecuteSqlCommand("SELECT RoomId FROM dbo.Rooms WHERE RoomCategory = '" + roomCategory + "'");
return RoomId;
然而,看起来好像你对sql-injection开放了。改为使用参数化查询。
答案 1 :(得分:0)
在SQL语句中,您需要为String值添加单引号。
正确的方法是在roomCategory
这是正确的答案。
public int GetPreferredRoomID(String roomCategory)
{
int RoomId;
return RoomId = db.Database.ExecuteSqlCommand("SELECT RoomId FROM dbo.Rooms WHERE RoomCategory = '" + roomCategory +"'");
}