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