2012-02-26 71 views
0

我在這裏編輯數據在WebMatrix中使用ASP.NET Razor有一些問題 我編寫這個代碼來編輯使用更新命令的數據,但不幸的是它不工作:s:s在WebMatrix中使用ASP.NET剃刀編輯數據頁面

剃刀代碼:

@{ 
     { 
      var userId = Request["UserId"]; 
    var db = Database.Open("intranet"); 
    var query = "UPDATE Personne SET Demande = @0 WHERE UserId LIKE '%@1%'"; 
    db.Execute(query,"refuser", userId); 
} 
    } 

html代碼:

<form action="responsable.cshtml" method="post"> 
    <input type="hidden" name="UserId" value="saadwafqui" /> 
    <input type="submit" value="Oui" /> 
</form> 

回答

0

您的代碼很容易受到SQL注入。我會建議你解決這個問題。另外你似乎正在使用一些IsPost變量,這個變量不太清楚哪裏正在定義。

例子:

@{ 
    var userId = Request["userid"]; 
    var db = Database.Open("intranet"); 
    var query = "UPDATE Personne SET Demande = @0 WHERE UserId LIKE '%' + @1 + '%'"; 
    db.Execute(query, "refuser", userId); 
} 

注意周圍的LIKE子句的語法:

LIKE '%' + @1 + '%' 

這將匹配在中間有UserId所有記錄。如果你想只匹配用戶ID開始與請求該值的記錄:

LIKE '%' + @1 

,如果你想精確匹配簡單地使用=運算符代替LIKE子句。

此外,您的標記看起來完全破碎。沒有window.location屬性。也許你的意思是這樣的:

<form action="responsable.cshtml" method="post"> 
    <input type="hidden" name="userid" value="saadwafqui" /> 
    <input type="submit" value="Oui" /> 
</form> 

或用GET請求,如果你喜歡:

<form action="responsable.cshtml" method="get"> 
    <input type="hidden" name="userid" value="saadwafqui" /> 
    <input type="submit" value="Oui" /> 
</form> 
+0

tnnnnnnnks dudde酒店fr您的幫助,但它不工作:■看發生了什麼,當我執行該頁面: http://data.imagup.com/11/1144944948.PNG 這裏是數據庫: http://data.imagup.com/12/1144945047.PNG – user1233875 2012-02-26 18:04:13

+0

圖像中的錯誤問題我把它展示給你解決,但它鋼des'nt更新塔commande在數據:s – user1233875 2012-02-26 18:22:59

+0

@ user1233875,這是因爲數據庫值中的UserID是'SaadWafqui',並且您將'saadwafqui'作爲參數發送,以便LIKE子句找不到任何匹配的記錄。 – 2012-02-26 18:25:14