Grundsätzlich ist überall, wo Sie Zeichenfolgen verketten, um Ihre SQL-Anweisung zu erstellen, besonders das, was aus Benutzereingaben stammt, anfällig.
Verwenden Sie stattdessen SQL-Parameter, die der Parameters-Eigenschaft Ihres SQL-Befehls hinzugefügt werden können (SQLcmd
hier).
Ich zeige Ihnen ein Beispiel mit einem Ihrer Parameter - ändern Sie Ihren SQLCommand-Text in:
INSERT INTO dbo.Patients(pIDNo, ...)
VALUES(@pIDNo, ...)
Wobei @pIDNo
ist ein "Platzhalter" im String für den Parameterwert, der separat vom Befehl in der SQLParameters-Sammlung
.
Dann können Sie einen Parameter mit dem gleichen Namen wie dieser "Platzhalter" und den Wert hinzufügen (er leitet den Typ von dem für Sie bereitgestellten Wert ab).
Hier ist das Beispiel von früher:
SQLcmd.Parameters.AddWithValue("@pIDNo", LabelPNumber.Text)