应用程序每次运行时都会关闭.当我检查logcat时,这是继续弹出的错误.
android.database.sqlite.SQLiteException: near "=": syntax error (code 1): , while compiling: SELECT * FROM tblresultsWHEREtopid=1ANDusname=fbbh
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2351)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2403)
at android.app.ActivityThread.access$600(ActivityThread.java:165)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5391)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
这是来自DBHELPER的我的片段:TOP_ID初始化为字符串.
public List<Result> getAllResult() {
String qry3 = "SELECT * FROM " + TABLE_RESULT + "WHERE" + TOP_ID + "=" + "1" + "AND" + USER_NAME + "=" + user;
Log.e(LOG, qry3);
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery(qry3, null);
if (c.moveToFirst()) {
do {
Result result = new Result();
result.setResultID(c.getInt(c.getColumnIndex(RESULT_ID)));
result.setUserName(c.getString(c.getColumnIndex(USER_NAME)));
result.setAverage(c.getString(c.getColumnIndex(AVERAGE)));
result.setTopicID(c.getString(c.getColumnIndex(TOP_ID)));
results.add(result);
} while (c.moveToNext());
}
return results;
}
Run Code Online (Sandbox Code Playgroud)
我认为你的concat代码有问题
String qry3 = "SELECT * FROM " + TABLE_RESULT + "WHERE" + TOP_ID + "=" + "1" + "AND" + USER_NAME + "=" + user;
Run Code Online (Sandbox Code Playgroud)
我想你应该之间添加空间TABLE_RESULT和WHERE后和空间"WHERE"和同样适用于cocat的AND.另外,如果你USER_NAME是一个字符串,你需要把它放在'
像
String qry3 = "SELECT * FROM " + TABLE_RESULT + " WHERE " + TOP_ID + "=" + "1" + " AND " + USER_NAME + "='" + user +"'";
Run Code Online (Sandbox Code Playgroud)