Maison > développement back-end > C++ > Comment insérer en toute sécurité des données contenant des caractères spéciaux dans une base de données Access à l'aide de paramètres ?

Comment insérer en toute sécurité des données contenant des caractères spéciaux dans une base de données Access à l'aide de paramètres ?

Patricia Arquette
Libérer: 2025-01-22 16:22:13
original
712 Les gens l'ont consulté

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

Utiliser des paramètres pour insérer des données dans une base de données Access

L'insertion de données contenant des caractères spéciaux dans une base de données Access peut être difficile en raison de problèmes de guillemets simples. L'utilisation de paramètres est un moyen efficace de résoudre ce problème.

Voici comment modifier votre code pour utiliser des paramètres au lieu de valeurs codées en dur :

a) Remplacer les paramètres réels par des espaces réservés :

Dans l'attribut cmd.CommandText, remplacez la valeur réelle par l'espace réservé préfixé par @ :

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

b) Ajouter une instance OleDbParameter :

Créez une instance de OleDbParameter et ajoutez-la à l'attribut DbCommand.Parameters. Assurez-vous que le nom du paramètre correspond au nom de l'espace réservé dans 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>
Copier après la connexion

Exemple :

Le code modifié est le suivant :

<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>
Copier après la connexion

En utilisant des paramètres, les caractères spéciaux insérés dans le texte peuvent être correctement traités, garantissant ainsi l'intégrité des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal