【问题标题】:Pass Variable Into A Table Field/Record (SQL/Webmatrix)将变量传递到表字段/记录 (SQL/Webmatrix)
【发布时间】:2016-01-28 23:08:06
【问题描述】:

我正在尝试在 cshtml 文件中运行 INSERT 查询,但在将变量传递到字段时遇到问题。如果我输入一个静态数字,查询就可以工作,但是当我包含 @0 来传递我的变量时,我得到了错误:

“此位置不允许有参数。请确保'@'符号位于有效位置或此 SQL 语句中的参数完全有效。”

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

字段和变量都是int。

谁能告诉我如何插入我的变量?

非常感谢

【问题讨论】:

    标签: sql variables razor webmatrix


    【解决方案1】:

    你应该可以这样做:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-08
      • 2020-03-29
      • 1970-01-01
      • 2023-03-11
      • 2014-01-08
      • 2017-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多