sql >> Databáze >  >> RDS >> Sqlserver

Chyba SQL s neplatným názvem sloupce

Pravděpodobně budete potřebovat uvozovky kolem těchto řetězcových polí, ale měli byste používat parametrizované dotazy!

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;

Mimochodem, váš původní dotaz mohl být opraven takto (všimněte si jednoduchých uvozovek):

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

to by jej však učinilo zranitelným vůči útokům SQL Injection protože uživatel mohl zadat

'; drop table users; -- 

do jednoho z vašich textových polí. Nebo, což je všednější, chudák Daniel O'Reilly by váš dotaz pokaždé přerušil.



  1. count(*) a count(název_sloupce), jaký je rozdíl?

  2. Křížový dotaz PostgreSQL

  3. Rychlejší načítání velkých dat

  4. Jednořádkové funkce v Oracle sql