我正在开发uwp app。在这里,我遇到的问题是,当我比较包含撇号的字符串时。 sqlite查询给出了异常。
如何在uwp中处理sqlite中的撇号。 男装字符串在下面的代码中出现异常。
SELECT SKU_MASTER.sku_Id, SKU_MASTER.short_description,SKU_MASTER.product_Id,PRODUCT_MASTER.product_ID,PRODUCT_MASTER.sub_category
FROM SKU_MASTER INNER JOIN PRODUCT_MASTER ON SKU_MASTER.product_Id == PRODUCT_MASTER.product_ID and PRODUCT_MASTER.category='APPAREL' and PRODUCT_MASTER.sub_category='MEN'S WEAR'
答案 0 :(得分:0)
您应该在应用程序中使用SQLiteParameter,这样任何文本都不会被解释为SQL语句本身的一部分,这实际上演示了一个SQL注入场景,因为撇号可用于逃避正常指示并添加其他内容。我认为你用'?'替换值?而是为Command添加相关参数及其值。
答案 1 :(得分:0)
选择SKU_MASTER.sku_Id,SKU_MASTER.short_description FROM SKU_MASTER INNER JOIN PRODUCT_MASTER SKU_MASTER.product_Id = PRODUCT_MASTER.product_ID和PRODUCT_MASTER.category ='{objcategory.category}'和PRODUCT_MASTER.sub_category = ?“ ,strArray [0]
它会给出结果。 这里我传递字符串作为参数。 摘自https://github.com/praeclarum/sqlite-net
的参考文献