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 ?
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>
É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>
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>
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!