更新期间SQL列错误的列名称值

时间:2014-09-12 20:39:35

标签: sql asp.net forms post

有人可以告诉我为什么这些代码会显示SQL错误

  

无效的列名称Poe

我要么是盲人要么是迟钝的,但我看不出这个代码中有任何错误(可能的变量名除外)

更新代码:

index.cshtml中的

if(IsPost)
{
    var it = Request.Form["it"];

    db.Execute("UPDATE students SET lastname="+it+" WHERE no="+no);

    <text>
    Submitted <br />
    </text>
}

表格有问题的片段:

index.cshtml中的

<td><input type="text" name="it" value=@rw.LastName /></td>

2 个答案:

答案 0 :(得分:4)

不带引号的字符串被视为列名。

但您应该使用参数化查询。像这样构建您的查询会让您向SQL injection开放。

所以你的SQL字符串应该是

    UPDATE students SET lastname=@lastname WHERE no=@no

在执行查询之前,将参数添加到命令对象中。

答案 1 :(得分:0)

您缺少引号,因此请将查询更新为

UPDATE students SET lastname='"+it+"' WHERE no="+no