我试图在vb.net中使用sql查询插入数据,如下所示。 name = corp int' l poc = 1
当我尝试插入时,我收到错误("字符串'&#34之后的未闭合引号;)。当我尝试插入只有1个单引号的名称时会发生这种情况。
因此我添加了一个替换函数,用2个单引号替换1个单引号以转义符号。没有错误,但是当我查看我的数据库时,会添加2个单引号而不是1.
任何人都可以告诉我如何使用参数化查询来逃避单引号?谢谢!
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<thead>
<th>S.No</th>
<th>Name</th>
</thead>
<tbody></tbody>
<tfoot></tfoot>
</table>
答案 0 :(得分:5)
作为参数传递的值(即SqlParameter对象)不需要转义。这是因为客户端API使用RPC调用来执行查询,查询本身和参数分别传递。通过RPC调用,实际参数值将通过TDS协议以本机(二进制)格式发送到SQL Server,而不是嵌入在语句中。这减轻了SQL注入问题并提供了其他好处,例如强类型和改进的性能。