Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Грешка sql с невалидно име на колона

Вероятно имате нужда от кавички около тези низови полета, но трябва да използвате параметризирани заявки!

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;

Между другото, оригиналната ви заявка можеше да бъде коригирана по следния начин (обърнете внимание на единичните кавички):

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

но това би го направило уязвимо за атаки с инжектиране на SQL тъй като потребителят може да въведе

'; drop table users; -- 

в едно от вашите текстови полета. Или, по-обикновено, бедният Даниел О'Райли щеше да наруши заявката ви всеки път.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да преименувате нещо в SQL Server, което има квадратни скоби в името?

  2. Как да актуализирам колоната за самоличност в SQL Server?

  3. Срокове за събиране на аларми от Spotlight Cloud

  4. Как да направите изтриване на преминаваща заявка в SQL Server

  5. Как да конвертирате между формати на дата в SQL Server с помощта на CAST()