2012-02-27 57 views
1

是有具有以下SQL語句SQL語法使用剃刀WebMatrix中的插入命令

@{ 
var userId = Request["UserId"]; 
    var db = Database.Open("intranet"); 
    var query3 = "INSERT INTO CongeAccept(UserId,DateDebut,DateFin,TypeConge) SELECT UserId,DateDebutDemande,DateFinDemande,TypeConge FROM DemandeConge WHERE UserId = '" + userId + "'"; 
      db.Execute(query3); } 

回答

1

任何probleme在那裏與該SQL語法任何probleme

它很大程度上依賴於用戶ID,其中來自。如果它的用戶提供了你打開自己的SQL注入攻擊

你應該改用參數。作爲額外的獎勵,你不必擔心引用價值的引號。

var query3 = @"INSERT INTO CongeAccept(UserId,DateDebut,DateFin,TypeConge) 
       SELECT UserId,DateDebutDemande,DateFinDemande,TypeConge 
       FROM DemandeConge 
       WHERE UserId = @0"; 
db.Execute(query3, userId); 
+0

TNKS花花公子^^看代碼現在領先怎麼我改變它 – user1233875 2012-02-27 23:40:40

+0

TNKS酒店fr通知dudde ^^所以,當我想用​​一個變量名我的變數名稱前加上「@」? – user1233875 2012-02-27 23:45:30

+0

是的,但變量名實際上並不重要,因爲它取代它出現的順序。請參閱[Database.Execute方法](http://msdn.microsoft.com/en-us/library/webmatrix.data.database.execute(v = vs.99).aspx) – 2012-02-27 23:47:09