“无法识别的令牌”,带有特殊字符
问题描述:
我使用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);