2012-04-24 49 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)在聲明編譯器錯誤正在生成的上下文?

相關問題