我正在使用WPF和Expression Blend为使用SQLite作为存储其数据的数据库的应用程序编写GUI。
我创建了几个TextBox
,用户可以在其中输入要在数据库中添加或修改的数据。但是如果用户输入双引号字符,则会生成异常,因为我在字符串的查询中使用了双引号字符。
所以我正在寻找一种方法来防止用户直接引入双引号字符。有可能吗?
注意:如果相关的话,我在C#中使用SQLite的实现是csharp-sqlite。
答案 0 :(得分:3)
您应该使用参数化查询,而不是将SQL生成为字符串并执行该字符串。除了双引号之外,还有很多东西,用户可以进入文本框,这会破坏您的查询(只需查看之前评论的SQL注入)并使用参数解决所有情况。如果你试图自己处理每一个案子,你会错过一些东西,这只是一个问题,是否有人想出来。