我知道我的问题非常简单,我正在努力研究这个rawQuery一小时,任何帮助都将受到高度赞赏......
String queryString = "SELECT _id FROM " + TABLE_SELECTED_ONE + " WHERE DifficultyLevel=? AND Attempt=?";
Cursor cursor = Db.rawQuery(queryString, new String[] {beginnerOrAdvanced, "no"} );
但它崩溃了
12-08 02:18:33.091: ERROR/AndroidRuntime(546): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.wissenways.practicequestion/com.wissenways.practicequestion.QuesBankSelect}: android.database.sqlite.SQLiteException: near ".": syntax error: , while compiling: SELECT _id FROMQuantQuesBank1WHEREQuantQuesBank1.DifficultyLevel='beginner' ANDQuantQuesBank1.Attempt ='no'
答案 0 :(得分:2)
我从未在我发布的所有应用中使用args,尝试
Db.rawQuery(queryString, null);
并将其字符串的完整状态构建为纯字符串
示例:
String dateString = Utils.makeDateString(mCalDate);
String sqlQuery = "select * from table where entrydate = '" + dateString + "'";
mSearchCursor = db.rawQuery(sqlQuery, null);
通过这种方式,您可以始终在桌面上的SQL浏览器应用程序中运行SQL查询(通过DDMS从手机中提取)并检查它是否在Android之外运行。
只是输出看起来非常错误,并且删除了必要的空格