我想在Razor C#中添加2个变量。
因此我尝试了这个:
var newpenpoints = result.PenaltyPoints + int.Parse(penalty);
但是我认为当我尝试将数字放入数据库时它不起作用:
var sql5 = "UPDATE Permit SET PenaltyPoints=@0, Disqualification = @1, LastAccidentDate = @2 WHERE CDSID = @3";
var para1 = new{newpenpoints, disqualification, dateocc, empcdsid};
db.Execute(sql5,para1);
Response.Redirect("~/AccidentConviction");
出现了错误:
CS0746: Invalid anonymous type member declarator. Anonymous type members must be declared with a member assignment, simple name or member access.
有谁知道如何修改我的代码以使其做一些数学运算?
由于
答案 0 :(得分:0)
生成匿名类型的代码中存在错误:
new{newpenpoints, disqualification, dateocc, empcdsid};
您确定在生成编译器错误的上下文中声明了所有变量(newpenpoints,disqualification,dateocc,empcdsid)吗?
答案 1 :(得分:0)
这不是有效的代码:
var para1 = new { newpenpoints, disqualification, dateocc, empcdsid };
这是尝试创建一个包含四个字段的匿名类型1,但您没有给它们命名。要创建这种类型,您必须使用您已有的另一个对象的值初始化字段,或者明确命名它们:
var para1 = new
{
NewPenPoints = newpenpoints,
Disqualification = disqualification,
Dateocc = dateocc,
Empcdsid = empcdsid
};
但是,重新阅读您的示例代码,它怀疑您真正想要的是对象数组。在这种情况下,您没有说db
是什么,但我猜测Execute
需要string
和object[]
参数。在这种情况下,你想要的是:
var para1 = new[] { newpenpoints, disqualification, dateocc, empcdsid };
注意[]
:这是创建一个新的对象数组,其中包含值列表,例如: para1[0] = newpenpoints
等我认为这就是你真正想要做的事情。