De nos jours je programme un logiciel de notation de cricket et tous les détails sont enregistrés dans une database. Je veux savoir comment append +1 au champ " W " dans la database lorsque vous click " Wicket ".
cmd.CommandText = "UPDATE database.table SET W=W+1 WHERE bowler='" & frmmain.lblbowler.Text & "' "
Dans ce code, frmmain.lblbowler.text
contient le nom du quilleur.
Ce code est-il correct? Quels changements doivent faire? S'il vous plaît, soyez assez aimable pour répondre.
Ne créez jamais une requête de cette façon! L'input frmmain.lblbowler.Text
est généralement récupérée à partir d'un contrôle TextBox sur un formulaire Windows ou une page Web. Tout ce qui est placé dans ce contrôle TextBox sera mis dans frmmain.lblbowler.Text
et ajouté à votre string SQL. Cette situation invite un pirate à replace cette string par quelque chose de malveillant. Dans le pire des cas, vous pouvez donner le contrôle total de votre ordinateur.
Au lieu de build dynamicment une string, comme indiqué dans votre code, utilisez des parameters.
Tout ce qui est placé dans un paramètre sera traité comme des données de champ, et non comme une partie de l'instruction SQL, ce qui rendra votre application beaucoup plus sûre.
Essayez le suivant
cmd.CommandText = "UPDATE database.table SET W=W+1 WHERE bowler = @bowler" command.Parameters.Add("@bowler", SqlDbType.NVarChar) command.Parameters("@bowler").Value = frmmain.lblbowler.Text