Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Ungültiger Spaltenname SQL-Fehler

Sie benötigen wahrscheinlich Anführungszeichen um diese Zeichenfolgenfelder, aber Sie sollten parametrisierte Abfragen verwenden!

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;

Übrigens hätte Ihre ursprüngliche Abfrage auch so korrigiert werden können (beachten Sie die einfachen Anführungszeichen):

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

aber das hätte es anfällig für SQL-Injection-Angriffe gemacht da ein Benutzer

eingeben könnte
'; drop table users; -- 

in eines Ihrer Textfelder. Oder, banaler, der arme Daniel O'Reilly würde jedes Mal Ihre Frage unterbrechen.