Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Memasukkan Data dengan Selamat ke dalam Pangkalan Data Akses Menggunakan Parameter?

Bagaimana untuk Memasukkan Data dengan Selamat ke dalam Pangkalan Data Akses Menggunakan Parameter?

DDD
Lepaskan: 2025-01-22 16:06:12
asal
483 orang telah melayarinya

How to Safely Insert Data into an Access Database Using Parameters?

Gunakan parameter untuk memasukkan data ke dalam pangkalan data Access

Memasukkan data pangkalan data Access secara terus menggunakan parameter berkod keras boleh menyebabkan masalah, terutamanya apabila bekerja dengan teks yang mengandungi petikan tunggal. Untuk menyelesaikan masalah ini, anda boleh menggunakan parameter dalam pertanyaan dan bukannya nilai rentetan langsung.

Langkah 1: Gantikan parameter berkod keras dengan ruang letak

Dalam kod yang disediakan, gantikan setiap parameter berkod keras dalam pertanyaan INSERT dengan ruang letak yang diawali dengan "@". Contohnya:

<code>cmd.CommandText = "INSERT INTO bookRated([title], [rating],  [review], [frnISBN], [frnUserName])VALUES('@title', '@rating','@review','@ISBN', '@userName')";</code>
Salin selepas log masuk

Langkah 2: Tambahkan OleDbParameters pada DbCommand

Buat contoh OleDbParameter dan tambahkannya pada sifat DbCommand.Parameters. Nama parameter hendaklah sepadan dengan nama pemegang tempat yang digunakan dalam pertanyaan:

<code>cmd.Parameters.AddRange(new OleDbParameter[]
{
    new OleDbParameter("@title", title),
    new OleDbParameter("@rating", rating),
    ...
});</code>
Salin selepas log masuk

Kod diubah suai:

<code>[WebMethod]
public void bookRatedAdd(string title, int rating, string review, string ISBN, string userName)
{
   using (OleDbConnection conn = new OleDbConnection(
         "Provider=Microsoft.Jet.OleDb.4.0;"+
         "Data Source="+Server.MapPath("App_Data\BookRateInitial.mdb"));
   {

      conn.Open();

      // DbCommand 也实现了 IDisposable 接口
      using (OleDbCommand cmd = conn.CreateCommand())
      {
           // 使用占位符创建命令
           cmd.CommandText = 
              "INSERT INTO bookRated "+
              "([title], [rating],  [review], [frnISBN], [frnUserName]) "+
              "VALUES(@title, @rating, @review, @isbn, @username)";

           // 添加命名参数
           cmd.Parameters.AddRange(new OleDbParameter[]
           {
               new OleDbParameter("@title", title),
               new OleDbParameter("@rating", rating),
               // ... 其他参数
           });

           // 执行
           cmd.ExecuteNonQuery();
      }
   }
}</code>
Salin selepas log masuk

Dengan menggunakan parameter, pangkalan data boleh mengendalikan aksara khas dengan betul seperti petikan tunggal, sekali gus memastikan integriti data.

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Data dengan Selamat ke dalam Pangkalan Data Akses Menggunakan Parameter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan