Fondamentalmente ovunque tu stia concatenando stringhe per creare la tua istruzione SQL, in particolare quella che proviene dall'input dell'utente, è vulnerabile.
Invece di farlo, usa i parametri SQL, che possono essere aggiunti alla proprietà Parameters del tuo comando SQL (SQLcmd
qui).
Ti mostrerò un esempio con uno dei tuoi parametri:cambia il testo di SQLCommand in:
INSERT INTO dbo.Patients(pIDNo, ...)
VALUES(@pIDNo, ...)
Dove @pIDNo
è un "segnaposto" nella stringa per il valore del parametro, che viene inviato separatamente dal comando in Raccolta SQLParameters
.
Quindi puoi aggiungere un parametro con lo stesso nome di questo "segnaposto" e il valore (deriverà il tipo dal valore fornito per te).
Ecco l'esempio di prima:
SQLcmd.Parameters.AddWithValue("@pIDNo", LabelPNumber.Text)