2014-01-16 37 views
0

在這個函數中,我試圖讓我的錶行的數量崩潰Android應用程序。上的SQL查詢

public int getSetCount(){ 
    SQLiteDatabase db = this.getWritableDatabase(); 
    String query = "SELECT " +KEY_SET_ID+" * FROM "+TABLE_SETS; 
    Cursor mcursor = db.rawQuery(query, null); 
    mcursor.moveToFirst(); 
    return mcursor.getInt(0); 

} 

的logcat的打印出這樣的事情

sqlite returned: error code = 1, msg = near "FROM": syntax error 

在這個函數中我會與給定ID查找的姓名。

public String getSetName (int ID){ 
    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor = db.rawQuery("SELECT * FROM "+TABLE_SETS+" WHERE "+KEY_SET_ID+" =? "+ID, null); 
    if (cursor != null) 
     cursor.moveToFirst(); 
    return cursor.getString(0); 
} 

這些功能有什麼問題,請告訴我吧?根據所有的論壇和教程,我正在做的一切正確。

回答

3

看來你的SQL語句未正確寫入。只需更改以下行:

String query = "SELECT " +KEY_SET_ID+" * FROM "+TABLE_SETS; 

到:

String query = "SELECT " +KEY_SET_ID+" FROM "+TABLE_SETS; 
+0

我嘗試過,但在'getSetCount()'函數沒有任何錯誤,但它返回一個假值。但在'getSetName'仍有一個錯誤 – user3199577

+0

與此替換:光標光標= db.rawQuery( 「SELECT * FROM 」+ TABLE_SETS +「 WHERE 」+ KEY_SET_ID +「=」 + ID,NULL); – iNDicator

+0

所以現在沒有任何錯誤,但是這兩個函數的返回值都是假​​的:) – user3199577