我正在开发android应用程序。实际上,在我的应用程序中,我是从以前存储的sqlite数据库中获取数据的。但是我的数据库列之一包含带撇号的字符串。当我传递查询时,传递带有撇号的字符串时显示错误。
下面是我的代码:
String fest = "Guru Rabindranath's Birthday";
querythefest(fest);
public void querythefest(String festname) {
DBAdapter dbAdapter = DBAdapter.getDBAdapterInstance(this);
try {
dbAdapter.createDataBase();
} catch (IOException e) {
Log.i("unable to create database", e.getMessage());
}
dbAdapter.openDataBase();
query2 = "Select desc from List where name='"+ festname + "'";
System.out.println("que " + query2);
arr1 = new ArrayList<ArrayList<String>>();
arr1 = dbAdapter.selectRecordsFromDBList(query2, null);
dbAdapter.close();
}
请帮我解决这个问题。
最佳答案
最简单,最快的方法是用一个额外的撇号转义每个单撇号,如下所示:
String fest = "Guru Rabindranath''s Birthday";
或者可以使用rawQuery方法选择Args参数(Sql注入)
query = "Select desc from List where name = ?";
mDb.rawQuery(query, new String[] { fest });