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

Errore sql del nome della colonna non valido

Probabilmente hai bisogno di virgolette attorno a quei campi stringa, ma dovresti utilizzare query parametrizzate!

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 = connection;

Per inciso, la tua query originale avrebbe potuto essere corretta in questo modo (nota le virgolette singole):

"VALUES ('" + txtName.Text + "','" + txtPhone.Text + "','" + txtAddress.Text + "');";

ma ​​questo lo avrebbe reso vulnerabile agli attacchi SQL injection poiché un utente può digitare

'; drop table users; -- 

in una delle tue caselle di testo. O, più banalmente, il povero Daniel O'Reilly interromperebbe la tua domanda ogni volta.