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

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

DDD
Libérer: 2025-01-22 16:06:12
original
526 Les gens l'ont consulté

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

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

L'insertion de données de base de données Access directement à l'aide de paramètres codés en dur peut entraîner des problèmes, en particulier lorsque vous travaillez avec du texte contenant des guillemets simples. Pour résoudre ce problème, vous pouvez utiliser des paramètres dans la requête au lieu de valeurs de chaîne directes.

Étape 1 : Remplacer les paramètres codés en dur par des espaces réservés

Dans le code fourni, remplacez chaque paramètre codé en dur dans la requête INSERT par un espace réservé préfixé par "@". Par exemple :

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

Étape 2 : Ajouter OleDbParameters à DbCommand

Créez une instance OleDbParameter et ajoutez-la à la propriété DbCommand.Parameters. Les noms des paramètres doivent correspondre aux noms d'espace réservé utilisés dans la requête :

<code>cmd.Parameters.AddRange(new OleDbParameter[]
{
    new OleDbParameter("@title", title),
    new OleDbParameter("@rating", rating),
    ...
});</code>
Copier après la connexion

Code modifié :

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

En utilisant des paramètres, la base de données peut gérer correctement les caractères spéciaux tels que les guillemets simples, 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal