Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kesalahan sql nama kolom tidak valid

Anda mungkin memerlukan tanda kutip di sekitar bidang string tersebut, tetapi, Anda harus menggunakan kueri berparameter!

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;

Kebetulan, kueri asli Anda bisa diperbaiki seperti ini (perhatikan tanda kutip tunggal):

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

tetapi ini akan membuatnya rentan terhadap serangan Injeksi SQL karena pengguna dapat mengetik

'; drop table users; -- 

ke salah satu kotak teks Anda. Atau, yang lebih biasa, Daniel O'Reilly yang malang akan mematahkan permintaan Anda setiap saat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa alat terbaik untuk membandingkan dua database SQL Server (skema dan data)?

  2. Cara menambahkan Batasan Kunci Utama ke Kolom Identitas ke semua tabel di Database SQL Server - Tutorial SQL Server / TSQL Bagian 63

  3. Dapatkan Baris yang Diperbarui

  4. SqlParameter tidak mengizinkan Nama tabel - opsi lain tanpa serangan injeksi sql?

  5. Bagaimana cara menghapus karakter ASCII yang diperluas dari string di T-SQL?