Zasadniczo wszędzie, gdzie łączysz ze sobą łańcuchy, aby utworzyć instrukcję SQL, szczególnie ta, która pochodzi z danych wejściowych użytkownika, jest podatna na ataki.
Zamiast tego użyj parametrów SQL, które można dodać do właściwości Parameters polecenia SQL (SQLcmd
tutaj).
Pokażę ci przykład z jednym z twoich parametrów - zmień tekst SQLCommand na:
INSERT INTO dbo.Patients(pIDNo, ...)
VALUES(@pIDNo, ...)
Gdzie @pIDNo
to „symbol zastępczy” w ciągu dla wartości parametru, który jest wysyłany niezależnie od polecenia w Kolekcja SQLParameters
.
Następnie możesz dodać parametr o tej samej nazwie, co ten „symbol zastępczy” i wartości (będzie on wyprowadzał typ z podanej wartości).
Oto przykład z wcześniejszego:
SQLcmd.Parameters.AddWithValue("@pIDNo", LabelPNumber.Text)