Stort set alle steder, hvor du sammenkæder strenge for at skabe din SQL-sætning, især det, der kommer fra brugerinput, er sårbart.
I stedet for at gøre dette skal du bruge SQL-parametre, som kan tilføjes til egenskaben Parameters for din SQL-kommando (SQLcmd
her).
Jeg viser dig et eksempel med en af dine parametre - skift din SQLCommand-tekst til:
INSERT INTO dbo.Patients(pIDNo, ...)
VALUES(@pIDNo, ...)
Hvor @pIDNo
er en "pladsholder" i strengen for parameterværdien, som sendes separat fra kommandoen i SQLParametersamling
.
Derefter kan du tilføje en parameter med samme navn som denne "pladsholder", og værdien (den vil aflede typen fra den værdi, der er angivet for dig).
Her er eksemplet fra tidligere:
SQLcmd.Parameters.AddWithValue("@pIDNo", LabelPNumber.Text)