android中的SQL rawquery

时间:2011-12-07 20:55:26

标签: android

我知道我的问题非常简单,我正在努力研究这个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'

1 个答案:

答案 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之外运行。

只是输出看起来非常错误,并且删除了必要的空格