在RazorWebmarix中更新

在RazorWebmarix中更新,razor,webmatrix,Razor,Webmatrix,这就是我得到的错误。 以下是我的数据库格式: `Exception Details: System.Data.SqlServerCe.SqlCeException: The column name is not valid. [ Node name (if any) = ,Column name = Name3 ]` 请帮助我理解我做错了什么。您的数据库中没有名为Name3的列,但您的SQL尝试引用具有该名称的列。更改SQL,使列名与数据库中的列名匹配。此外,您的SQL中有4个参数标记,但您只

这就是我得到的错误。 以下是我的数据库格式:

`Exception Details: System.Data.SqlServerCe.SqlCeException: The column name is not valid. [ Node name (if any) = ,Column name = Name3 ]`

请帮助我理解我做错了什么。

您的数据库中没有名为Name3的列,但您的SQL尝试引用具有该名称的列。更改SQL,使列名与数据库中的列名匹配。此外,您的SQL中有4个参数标记,但您只为其中3个提供值,因此您的SQL永远不会更新任何记录

您的SQL应该如下所示:

`ID = identity=big int  
Name nvarchar  
Description nvarchar  
price nvarchar`
然后您需要为ID传递一个值:

"UPDATE productori SET Name=@0, Description=@1, Price=@2 WHERE ID=@3";

var sqlup=(“更新productori集合名称=@0,描述=@1,价格=@2,其中ID=@3”);var db2=Database.Open(“SmallBakery”);Execute(sqlup,Name3,Description3,Price3,id);但是当我运行代码时,数据库中的值没有改变,那么你需要检查id的值,以确保它与数据库中的值匹配。id是传递的,因为我可以在编辑文本框中获取值,但在iPost期间,它像没有执行sql一样在此执行示例代码任何注释和视图都非常感谢
"UPDATE productori SET Name=@0, Description=@1, Price=@2 WHERE ID=@3";
db2.Execute(sql3, Name3, detail2, harga2, variable_containing_id_value);