Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Pertanyaan Berparameter Boleh Menyelesaikan Isu Penyisipan Data dalam Pangkalan Data Akses dengan Aksara Khas?

Bagaimanakah Pertanyaan Berparameter Boleh Menyelesaikan Isu Penyisipan Data dalam Pangkalan Data Akses dengan Aksara Khas?

DDD
DDDasal
2025-01-22 16:12:12672semak imbas

How Can Parameterized Queries Solve Data Insertion Issues in Access Databases with Special Characters?

Gunakan pertanyaan berparameter untuk menyelesaikan masalah sisipan data aksara khas dalam pangkalan data Access

Coretan kod berikut menunjukkan memasukkan data ke dalam pangkalan data Access menggunakan kaedah capaian data OLE DB. Walau bagaimanapun, masalah timbul apabila memasukkan teks yang mengandungi petikan tunggal. Pertanyaan berparameter boleh menyelesaikan masalah ini dengan berkesan.

Kemas kini kod dengan parameter

Untuk memasukkan data menggunakan parameter, kod perlu dilaraskan seperti berikut:

  1. Ganti parameter berkod keras dengan ruang letak: Dalam sifat CommandText OleDbCommand, gantikan nilai parameter sebenar dengan ruang letak yang diawali dengan @.
  2. Tambah OleDbParameters yang bernama: Buat tika OleDbParameter dan tambahkannya pada sifat DbCommand.Parameters. Nama parameter mesti sepadan dengan nama pemegang tempat.

Kod dikemas kini berikut menunjukkan penggunaan parameter:

<code class="language-csharp">[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>

Dengan menggunakan parameter, kod memastikan data dimasukkan dengan selamat, mencegah masalah yang mungkin disebabkan oleh aksara khas dan mengekalkan integriti data.

Atas ialah kandungan terperinci Bagaimanakah Pertanyaan Berparameter Boleh Menyelesaikan Isu Penyisipan Data dalam Pangkalan Data Akses dengan Aksara Khas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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