2016-01-21 96 views
0

每當我運行它時,應用程序強制關閉。當我檢查logcat時,這是不斷彈出的錯誤。SQLiteException:接近「=」:語法錯誤(代碼1):(關閉)

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) 

這是我的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; 
} 
+1

變化'「和」'和'」 AND「' – Blackbelt

+1

當你是一個絕對的初學者時,這是一個最常犯的錯誤。 – Yogesh

回答

5

我覺得有問題,你的CONCAT代碼

String qry3 = "SELECT * FROM " + TABLE_RESULT + "WHERE" + TOP_ID + "=" + "1" + "AND" + USER_NAME + "=" + user; 

我想你應該在「WHERE」後TABLE_RESULTWHERE和空間之間增加的空間和同樣適用於cocat爲AND。 另外,如果您USER_NAME是一個字符串,你就需要把它裏面' 喜歡的東西引號內

String qry3 = "SELECT * FROM " + TABLE_RESULT + " WHERE " + TOP_ID + "=" + "1" + " AND " + USER_NAME + "='" + user +"'"; 
+0

我改變了它,但這裏的日誌貓: 沒有這樣的列:user1(code 1):,while compiling:SELECT * FROM tblresults WHERE topid = 1 AND usname = user1 – user2204221

+1

@ user2204221 may be you have not usname列在您的數據庫。清楚地檢查你的桌子。 –

+0

當我用來獲取表中的所有列時,數據就在那裏,但是當我試圖詢問特定列時,它一直出現錯誤 – user2204221

4

認沽差距文本:

String qry3 = "SELECT * FROM " + TABLE_RESULT + " WHERE " + TOP_ID + " = " + "1" + " AND " + USER_NAME + " = " + user; 
+0

我改變了它,但這裏的日誌貓:沒有這樣的列:user1(代碼1):,編譯時:SELECT * FROM tblresults WHERE topid = 1和usname = user1 – user2204221

相關問題