パラメーターを使用して Access データベースにデータを挿入する
特殊文字を含むデータを Access データベースに挿入することは、一重引用符の問題により困難になる場合があります。パラメーターの使用は、この問題を解決する効果的な方法です。
ハードコードされた値の代わりにパラメーターを使用するようにコードを変更する方法は次のとおりです。
a) 実際のパラメータをプレースホルダに置き換えます:
cmd.CommandText
属性で、実際の値を @
というプレフィックスが付いたプレースホルダーに置き換えます:
<code class="language-csharp">cmd.CommandText = @"INSERT INTO bookRated([title], [rating], [review], [frnISBN], [frnUserName]) VALUES (@title, @rating, @review, @ISBN, @userName)";</code>
b) OleDbParameter インスタンスを追加します:
OleDbParameter
のインスタンスを作成し、それを DbCommand.Parameters
属性に追加します。パラメーター名が 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>
例:
変更されたコードは次のとおりです:
<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 サイトの他の関連記事を参照してください。