将变量传递到表字段/记录(SQL / Webmatrix)

时间:2016-01-28 23:08:07

标签: sql variables razor webmatrix

我试图在cshtml文件中运行INSERT查询但是我在将变量传递到字段时遇到问题。如果我输入一个静态数字,但是当我包含@ 0传递我的变量时,查询有效,我得到错误:

"此位置不允许使用参数。确保' @' sign位于有效位置,或者此SQL语句中的参数完全有效。"

db.Execute("INSERT INTO table1(field1, field2, field3, field4)
            SELECT @0, field2, field3, field4
            FROM table2", myVariable);

字段和变量都是int。

有人可以告诉我如何插入我的变量吗?

非常感谢

1 个答案:

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

这将返回所有列,然后您可以选择稍后显示/隐藏哪些列。假设你的桌子不是很大,这可以很好地工作,没有任何性能问题。