我应该如何修改此代码以使其在Razor C#中运行?

时间:2012-04-24 03:27:57

标签: c# razor webmatrix

我想在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.

有谁知道如何修改我的代码以使其做一些数学运算?

由于

2 个答案:

答案 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需要stringobject[]参数。在这种情况下,你想要的是:

var para1 = new[] { newpenpoints, disqualification, dateocc, empcdsid };

注意[]:这是创建一个新的对象数组,其中包含值列表,例如: para1[0] = newpenpoints等我认为这就是你真正想要做的事情。