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



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

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

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

字段和变量都是 int。

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

非常感谢

你应该能够做到这一点:

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

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

最新更新