首頁 >後端開發 >C++ >如何使用參數將帶有特殊字元的資料安全地插入Access資料庫?

如何使用參數將帶有特殊字元的資料安全地插入Access資料庫?

Patricia Arquette
Patricia Arquette原創
2025-01-22 16:22:13713瀏覽

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

使用參數將資料插入 Access 資料庫

由於單引號問題,將包含特殊字元的資料插入 Access 資料庫可能具有挑戰性。使用參數是解決此問題的有效方法。

以下是如何修改程式碼以使用參數取代硬編碼值:

a) 將實際參數替換為佔位符:

cmd.CommandText 屬性中,將實際值替換為以 @ 為前綴的佔位符:

<code class="language-csharp">cmd.CommandText = @"INSERT INTO bookRated([title], [rating],  [review], [frnISBN], [frnUserName]) VALUES (@title, @rating, @review, @ISBN, @userName)";</code>

b) 新增 OleDbParameter 實例:

建立 OleDbParameter 實例並將其新增至 DbCommand.Parameters 屬性。確保參數名稱與 cmd.CommandText 中的佔位符名稱相符:

<code class="language-csharp">// 创建包含占位符的命令
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),
   // ... 添加其他参数
});</code>

範例:

修改後的程式碼如下圖所示:

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

透過使用參數,可以正確處理插入文字中的特殊字符,從而確保資料完整性。

以上是如何使用參數將帶有特殊字元的資料安全地插入Access資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn