“无法识别的令牌”,带有特殊字符

问题描述:

我使用SQLite和Xamarin for iOS。 我在创建正确的查询字符串时遇到问题。我认为问题是字符串中的特殊字符。 我给出了一个品牌名称,我将在数据库中选择此项:“无法识别的令牌”,带有特殊字符

这适用于没有特殊字符的字符串,如“BESSEY”,但对于像“ALURIX®600”这样的字符串不起作用。

return dbConn.Query<MasterProductDataStructure>("SELECT * FROM ZMASTERPRODUCTS WHERE ZMANUFACTURER='" + ZBRANDS + "'"); 

错误消息:

SQLite.Net.SQLiteException:无法识别的令牌: “” ALUTRIX®600"

然后我测试:

return dbConn.Query<MasterProductDataStructure>("SELECT * FROM ZMASTERPRODUCTS WHERE ZMANUFACTURER=\"" + ZBRANDS + "\""); 

错误消息:

SQLite.Net.SQLiteException:无法识别的标记: “” ALUTRIX®600"

完整的方法:

public List<MasterProductDataStructure> GetAllProductBrands(string ZBRANDS) 
{ 
     return dbConn.Query<MasterProductDataStructure>("SELECT * FROM ZMASTERPRODUCTS WHERE ZMANUFACTURER=\"" + ZBRANDS + "\""); 
} 

有没有人有任何想法,我怎么能解决这个问题?

我发现了一个可能的解决方案:

return dbConn.Query<MasterProductDataStructure>("SELECT * FROM ZMASTERPRODUCTS WHERE ZMANUFACTURER= ?", ZBRANDS);