Android - 当我在数据库中有撇号并选择数据时崩溃

kol*_*lek 0 android

我从我的sqlite数据库中选择数据.我的问题是,当在数据库中是撇号(例如"我是约翰")并且我尝试选择数据时,我的应用程序崩溃了.

如果我在数据库中没有撇号,那么一切都很好.

我的选择数据功能:

String query = "SELECT * FROM " + mainCollumn  + " WHERE used=0 " + " AND season <= " + seasons + " ORDER BY RANDOM() LIMIT " + count ;

    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(query, null);

    if(cursor.moveToFirst()){
        do {
            Question question = new Question(Integer.parseInt(cursor.getString(0)),
                    cursor.getString(1),cursor.getString(2),cursor.getString(3),cursor.getString(4),cursor.getString(5),
                    Integer.parseInt(cursor.getString(6)));

            questionList.add(question);
        }while(cursor.moveToNext());
    }
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

Ugg*_*dle 5

您可以通过使用双引号替换它们专门处理撇号,但最好的方法是使用query()selectionArgs替代rawQuery().

SQLiteDatabase db = this.getReadableDatabase();
String[] columns = new String[] {column1, column2}; // the columns you want
Cursor cursor = db.query(mainCollumn, String[] columns, "used=0 and season<=?", new String[] {seasons}, null, null, "RANDOM() LIMIT " + count);
Run Code Online (Sandbox Code Playgroud)