매개변수를 사용하여 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!