sql >> Databasteknik >  >> RDS >> Sqlserver

Ogiltigt kolumnnamn sql-fel

Du behöver förmodligen citattecken runt dessa strängfält, men du bör använda parametriserade frågor!

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;

Förresten, din ursprungliga fråga kunde ha fixats så här (observera de enskilda citattecken):

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

men detta skulle ha gjort det sårbart för SQL Injection-attacker eftersom en användare kan skriva in

'; drop table users; -- 

i en av dina textrutor. Eller, mer vardagligt, stackars Daniel O'Reilly skulle bryta din fråga varje gång.



  1. Hitta beroenden i SQL Server:sql_expression_dependencies

  2. Hur kan jag VÄLJA rader med MAX(kolumnvärde), PARTITION efter en annan kolumn i MYSQL?

  3. Hur får jag en lista över alla tabeller i en databas med TSQL?

  4. Tabellen är "skrivskyddad"