我正在尝试使用cshtml和sqlce用WebMatrix 3.0创建一个简单的Web应用程序。
表“ person”包括以下列(第一列是主键和标识,其他两个允许NULL值):
ID
firstmi
last
我正在尝试制作一个简单的表单来更新ID = id的行中的“ firstmi”和“ last”字段。
页面加载后,我设置var id=Request["id"]
。变量“ personFirstMI”和“ personLast”设置为两个相应文本框的值。
运行以下代码时:
db.Execute("UPDATE person SET firstmi=personFirstMI, last=personLast WHERE ID=id");
出现以下错误:
列名无效。[节点名称(如果有)=,列名称= personFirstMI]
有人知道我在做什么错吗?
我不明白“节点名称”是指什么。而且我不明白为什么我的SQL语法中的列名将被读取为“ personFirstMI”而不是“ firstmi”。如果我尝试将“ firstmi”设置为等于“ personFirstMI”,而“ ID”等于“ id”,则我的理解是,这应导致“ ID”行中的“ firstmi”字段设置为等于“ personFirstMI”。
您需要使用@ 0,@ 1,@ 2,@ 3等形式的参数标记,在SQL中每次递增1,然后将值传递给Execute方法:
var sql = "UPDATE person SET firstMi = @0, last = @1 WHERE ID = @2";
db.Execute(sql, personFirstMI, personLast, id);
有关在ASP.NET网页中处理数据的更多信息,请参见本教程:http : //www.asp.net/web-pages/tutorials/data/5-working-with-data
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句