2012-04-24 50 views
0

我想在Razor C#中添加2个变量。我应该如何修改此代码才能使其在Razor C#中工作?

所以我尝试这样:

var newpenpoints = result.PenaltyPoints + int.Parse(penalty); 

但我认为它不工作,当我试图把这个数字到数据库:

var sql5 = "UPDATE Permit SET [email protected], 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

你有控制器吗? – Shyju 2012-04-24 03:32:38

+0

nope ...我不知道如何写一个控制器...我对C#和webmatrix很陌生 – Panda 2012-04-24 03:33:39

+0

什么样的项目是这样的? ASP.NET MVC/ASP.NET Webform? – Shyju 2012-04-24 03:34:21

回答

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等我认为这是你真正打算做的。

+0

我认为obj。在剃刀C#desnt工作......是吗? – Panda 2012-04-24 04:15:47

+0

在我的示例中,obj'只是一些其他对象的占位符,如参数或LINQ查询中的变量,或其他。关键是,你的属性必须属于* something *,然后才能使用它们来初始化一个匿名类型。你不能简单地列出一堆局部变量。 – 2012-04-24 12:25:15

0

有一个在代码生成匿名类型的错误:

new{newpenpoints, disqualification, dateocc, empcdsid}; 

你确定所有的变量(newpenpoints,取消资格,dateocc,empcdsid)在声明编译器错误正在生成的上下文?

相关问题