Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Nieprawidłowa nazwa kolumny błąd sql

Prawdopodobnie potrzebujesz cudzysłowów wokół tych pól ciągów, ale powinieneś używać zapytań parametrycznych!

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;

Nawiasem mówiąc, Twoje pierwotne zapytanie mogło zostać poprawione w ten sposób (zwróć uwagę na pojedyncze cudzysłowy):

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

ale to naraziłoby go na ataki SQL Injection ponieważ użytkownik może wpisać

'; drop table users; -- 

do jednego z twoich pól tekstowych. Albo, bardziej przyziemnie, biedny Daniel O'Reilly za każdym razem przerywałby twoje zapytanie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. POKAŻ BAZY DANYCH Odpowiednik w SQL Server – sp_databases

  2. Jak APPROX_COUNT_DISTINCT() działa w SQL Server

  3. Jak znaleźć sumę wielu kolumn w tabeli w SQL Server 2005?

  4. Zapisz byte[] w bazie danych SQL Server z C#

  5. Lepsze techniki przycinania wiodących zer w SQL Server?