I princip var som helst där du sammanfogar strängar för att skapa din SQL-sats, särskilt det som kommer från användarinmatning, är sårbart.
Istället för att göra detta använd SQL-parametrar, som kan läggas till egenskapen Parameters för ditt SQL-kommando (SQLcmd
här).
Jag ska visa dig ett exempel med en av dina parametrar - ändra din SQLCommand-text till:
INSERT INTO dbo.Patients(pIDNo, ...)
VALUES(@pIDNo, ...)
Där @pIDNo
är en "platshållare" i strängen för parametervärdet, som skickas separat från kommandot i SQLParametersamling
.
Sedan kan du lägga till en parameter med samma namn som denna "platshållare" och värdet (det kommer att härleda typen från värdet som du har angett).
Här är exemplet från tidigare:
SQLcmd.Parameters.AddWithValue("@pIDNo", LabelPNumber.Text)