Fondamentalement, partout où vous concaténez des chaînes pour créer votre instruction SQL, en particulier celle qui provient de l'entrée de l'utilisateur, est vulnérable.
Au lieu de cela, utilisez des paramètres SQL, qui peuvent être ajoutés à la propriété Parameters de votre commande SQL (SQLcmd
ici).
Je vais vous montrer un exemple avec l'un de vos paramètres - changez votre texte SQLCommand en :
INSERT INTO dbo.Patients(pIDNo, ...)
VALUES(@pIDNo, ...)
Où @pIDNo
est un "espace réservé" dans la chaîne pour la valeur du paramètre, qui est envoyé séparément de la commande dans le Collection SQLParameters
.
Ensuite, vous pouvez ajouter un paramètre avec le même nom que cet "espace réservé", et la valeur (il dérivera le type de la valeur qui vous est fournie).
Voici l'exemple précédent :
SQLcmd.Parameters.AddWithValue("@pIDNo", LabelPNumber.Text)