我正在尝试使用Entity Framework执行插入查询。
我有这样的事情:
Context.database.ExecuteSqlCommand("Insert into tableName Values({0},{1},{2}", param1, param2, param3)
但是这会引发错误
'@ p1'附近的语法不正确
这是什么'@p1'?
答案 0 :(得分:7)
你错过了结束。
应该是:
Context.database.ExecuteSqlCommand("Insert into tableName Values({0},{1},{2})", param1, param2, param3)
或者,您可以使用SqlParameter类:
Context.Database.ExecuteSqlCommand(
"Insert into tableName Values(@id, @firstName, @lastName)",
new SqlParameter("id", id),
new SqlParameter("firstName", firstName),
new SqlParameter("lastName", lastName)
);
答案 1 :(得分:2)
除了显而易见的问题,为什么要编写SQL,在第三个{2}
参数之后,似乎缺少一个右括号:
Contex.database.ExecuteSQLCOmmand(@"Insert into tableName Values({0},{1},{2})",param1,param2,param3);
然后指定列名称也是一种好习惯,如下所示:
Contex.database.ExecuteSQLCOmmand(@"Insert into tableName (col1, col2, col3) Values({0},{1},{2})",param1,param2,param3);