转义 MS Access 查询的特殊字符
我想通过 ms access 数据库的插入查询来存储这些字符“ '^+%&/()=?_ ”。我该如何做到这一点并预防每种情况?
I want to store these characters " '^+%&/()=?_ " via an insert query for an ms access database. How do I do this and prevent from every cases?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
使用参数化
INSERT< /代码> 声明。
看起来您的代码正在组装 SQL 命令字符串。我必须告诉你:如果是这种情况,它会使你的代码容易受到SQL 注入的攻击。
Use parameterized
INSERT
statement.It looks like your code is assembling the SQL command string. I have to tell you: if that's the case, it makes your code vulnerable to SQL Injection.
除了使用参数化查询(参见 Adrian 的答案)之外,您还可以使用带参数的查询定义并调用它。
例如,您可以使用以下 sql 创建一个名为 qry_InsSomeTable 的查询
然后您可以像调用任何存储过程一样调用
当您有一个包含一堆字段的表时,它特别有用
例如
vs.
查询已经在 Access 中定义,就像
在 c# 中一样
但是正如 @David-W-Fenton 指出的那样,参数上的名称将被忽略,仅考虑位置。
例如
这
不等于
所以看起来它主要是风格上的差异。
In addition to using a parameterized query (see Adrian's Answer) you can use a Query Definition with a parameter and call it.
For example you could create a query named qry_InsSomeTable with the following sql
Then you could call like you would any stored procedure
Its particularly helpful when you have a table with a bunch of fields
For example
vs.
Query already define in Access as
then in c#
However as @David-W-Fenton points out the names on the parameters are ignored and only the position is taken into account.
e.g.
This
is not equivalent to
So it seems it mostly stylistic in the differences.
要插入特殊字符,应将特殊字符括在方括号 ([]) 中。我希望这有帮助。
To insert special Characters you should enclose the special characters in brackets ([]). I hope this helps.
在 Visual Studio 上,您必须将单字符转换为双字符,
即:
on Visual Studio you must to convert the single to double character
i.e.: