2012-02-28 3 views
0

APS 나에게 어떤 MSG를 보여 desn't 번째 사촌 (var에 query4)에이 문제이지만 테이블 concerneasp.net 면도기는

@{ 
    var userId = Request["UserId"]; 
    var Type = Request["type"]; 
    var db = Database.Open("intranet"); 
    if(Type == "delete") 
    { 

    var query = "UPDATE Personne SET Demande = 'refuser' WHERE UserId = '" + userId + "'"; 
    db.Execute(query); 

    var query2 = "DELETE from DemandeConge where UserId = '" + userId + "'"; 
    db.Execute(query2); 
    } 
    else if(Type == "accepte") 
    { 


     var query = "UPDATE Personne SET Demande = 'accepte' WHERE UserId = '" + userId + "'"; 
     db.Execute(query); 

     var query2 = "DELETE from DemandeConge where UserId = '" + userId + "'"; 
     db.Execute(query2); 


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

에 데이터를 삽입 할 수 없습니다 이 코드에 주석을 whene하고 그것뿐만 아니라 작동합니다

/* var query = "UPDATE Personne SET Demande = 'accepte' WHERE UserId = '" + userId + "'"; 
    db.Execute(query); 

    var query2 = "DELETE from DemandeConge where UserId = '" + userId + "'"; 
    db.Execute(query2);*/ 


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

** 경고 ** 귀하의 코드는 SQL 주입 공격에 취약합니다. –

+0

예 저는 시험 점수를 알고 있습니다 ^^ – user1233875

답변

0

당신은 당신이 삽입 쿼리를 시도 그렇게 할 때 CongeAccept에 삽입하려는 사용자에 관한 DemandeConge에 이르기까지 모든을 삭제, 아무것도 거기 없다 끼워 넣다. 명령문 및 매개 변수의 순서를 변경하십시오.

@{ 
    var userId = Request["UserId"]; 
    var Type = Request["type"]; 
    var db = Database.Open("intranet"); 
    if(Type == "delete") 
    { 

    var query = "UPDATE Personne SET Demande = 'refuser' WHERE UserId = @0"; 
    db.Execute(query, userId); 

    var query2 = "DELETE from DemandeConge where UserId = @0"; 
    db.Execute(query2, userId); 
    } 
    else if(Type == "accepte") 
    { 
     var query = "UPDATE Personne SET Demande = 'accepte' WHERE UserId = @0"; 
     db.Execute(query, userId); 

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

     var query2 = "DELETE from DemandeConge where UserId = @0"; 
     db.Execute(query2, userId); 
    } 
}