我试图在cshtml文件中运行INSERT查询但是我在将变量传递到字段时遇到问题。如果我输入一个静态数字,但是当我包含@ 0传递我的变量时,查询有效,我得到错误:
"此位置不允许使用参数。确保' @' sign位于有效位置,或者此SQL语句中的参数完全有效。"
db.Execute("INSERT INTO table1(field1, field2, field3, field4)
SELECT @0, field2, field3, field4
FROM table2", myVariable);
字段和变量都是int。
有人可以告诉我如何插入我的变量吗?
非常感谢
答案 0 :(得分:0)
你应该可以这样做:
db.Execute("INSERT INTO table1(field1, field2, field3, field4)
SELECT " + myVariable + ", field2, field3, field4
FROM table2");
但是,绕过始终使用参数化查询的标准是一个坏主意,因为它会让您受到SQL注入攻击。
您可以改为使用:
db.Execute("INSERT INTO table1(field1, field2, field3, field4)
SELECT * FROM table2");
这将返回所有列,然后您可以选择稍后显示/隐藏哪些列。假设你的桌子不是很大,这可以很好地工作,没有任何性能问题。