sql >> Database teknologi >  >> RDS >> Sqlserver

Ugyldigt kolonnenavn sql-fejl

Du har sandsynligvis brug for anførselstegn omkring disse strengfelter, men du bør bruge parameterbaserede forespørgsler!

cmd.CommandText ="INSERT INTO Data ([Name],PhoneNo,Address) VALUES (@name, @phone, @address)";cmd.CommandType =CommandType.Text;cmd.Parameters.AddWithValue( "@name", txtName.Text);cmd.Parameters.AddWithValue("@phone", txtPhone.Text);cmd.Parameters.AddWithValue("@address", txtAddress.Text);cmd.Connection =forbindelse; 

I øvrigt kunne din oprindelige forespørgsel være blevet rettet på denne måde (bemærk de enkelte anførselstegn):

"VÆRDIER ('" + txtName.Text + "','" + txtPhone.Text + "','" + txtAddress.Text + "');"; 

men dette ville have gjort det sårbart over for SQL Injection-angreb da en bruger kunne indtaste

'; drop table brugere; --

i en af ​​dine tekstbokse. Eller mere hverdagsagtigt, stakkels Daniel O'Reilly ville bryde din forespørgsel hver gang.



  1. Brug af LIKE i bindParam til en MySQL PDO-forespørgsel

  2. EXISTS vs JOIN og brug af EXISTS-klausulen

  3. Mulige måder at løse problemet med korruption af SQL Server-metadata

  4. Hvordan kan du køre den samme forespørgsel flere gange ved hjælp af loop i PL/SQL?