Básicamente, en cualquier lugar donde esté concatenando cadenas para crear su declaración SQL, especialmente la que proviene de la entrada del usuario, es vulnerable.
En lugar de hacer esto, use parámetros SQL, que se pueden agregar a la propiedad Parámetros de su comando SQL (SQLcmd
aquí).
Le mostraré un ejemplo con uno de sus parámetros:cambie el texto de SQLCommand a:
INSERT INTO dbo.Patients(pIDNo, ...)
VALUES(@pIDNo, ...)
Donde @pIDNo
es un "marcador de posición" en la cadena para el valor del parámetro, que se envía por separado del comando en el Colección SQLParameters
.
Luego, puede agregar un parámetro con el mismo nombre que este "marcador de posición" y el valor (obtendrá el tipo del valor proporcionado).
Aquí está el ejemplo de antes:
SQLcmd.Parameters.AddWithValue("@pIDNo", LabelPNumber.Text)