sql >> Base de Datos >  >> RDS >> Sqlserver

Error de sql de nombre de columna no válido

Probablemente necesite comillas alrededor de esos campos de cadena, pero ¡debería usar consultas parametrizadas!

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;

Por cierto, su consulta original podría haberse arreglado así (tenga en cuenta las comillas simples):

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

pero esto lo habría hecho vulnerable a ataques de inyección SQL ya que un usuario podría escribir

'; drop table users; -- 

en uno de sus cuadros de texto. O, más mundanamente, el pobre Daniel O'Reilly rompería tu consulta cada vez.