ホームページ >バックエンド開発 >C++ >パラメーター化されたクエリは、特殊文字を含む Access データベースでのデータ挿入の問題をどのように解決できますか?

パラメーター化されたクエリは、特殊文字を含む Access データベースでのデータ挿入の問題をどのように解決できますか?

DDD
DDDオリジナル
2025-01-22 16:12:12671ブラウズ

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

パラメーター化されたクエリを使用して、Access データベースでの特殊文字のデータ挿入の問題を解決します

次のコード スニペットは、OLE DB データ アクセス メソッドを使用して Access データベースにデータを挿入する方法を示しています。ただし、一重引用符を含むテキストを挿入すると問題が発生します。 パラメータ化されたクエリは、この問題を効果的に解決できます。

パラメータを使用してコードを更新します

パラメータを使用してデータを挿入するには、コードを次のように調整する必要があります:

  1. ハードコードされたパラメーターをプレースホルダーで置き換えます: OleDbCommand の CommandText プロパティで、実際のパラメーター値を @ の接頭辞が付いたプレースホルダーで置き換えます。
  2. 名前付き OleDbParameters を追加: OleDbParameter インスタンスを作成し、DbCommand.Parameters プロパティに追加します。パラメータ名はプレースホルダ名と一致する必要があります。

次の更新されたコードは、パラメーターの使用方法を示しています:

<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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。