2012-12-20 55 views
0

我在寫一個使用sqlite的小應用程序。
調試器說有語法錯誤。 我試過但我找不到它在哪裏。Android Java語法錯誤

12-20 14:13:40.353:E/SQLiteLog(2329):(1)接近 「」:語法錯誤

SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase $ CursorFactory,字符串,字符串[], String,CancellationSignal)行:1317
SQLiteDatabase.rawQuery(String,String [])line:1253
TemporaryDatabase.EntryGiris(int,int,int,int,int,int,int,int,int,int) line:125

這裏是代碼:

public class TemporaryDatabase { 
...... 

    String entryGirisSQL="SELECT "+C_ID 
         +" FROM harcamalar WHERE "+C_YIL+"=" 
         +yilsql+","+C_AY+"="+aysql; 
    Cursor cursor=ourDatabase.rawQuery(entryGirisSQL, null); 
    int index=cursor.getColumnIndex(C_ID); 
    if(index>=0) 
     ourDatabase.update(DB_TABLE, cv, "c_id="+index, null); 
    else ourDatabase.insert(DB_TABLE, null, cv); 
    } 

} 
+2

[我看起來像古茹嗎?](http://programmer.97things.oreilly.com/wiki/index.php/The_Guru_Myth) –

+3

僅發佈代碼的相關部分,例如:代碼中的這個錯誤是指向,否則我們很難調整 –

+2

Oy與downvotes,它實際上不是一半壞!日誌在那裏,代碼在那裏(即使你必須查找查詢)。寒意! – dmon

回答

4

問題在於你的SQL查詢。

SELECT "+C_ID+" FROM harcamalar WHERE "+C_YIL+"="+yilsql+","+C_AY+"="+aysql; 

作爲WHERE子句的一部分,SQL不支持逗號。您需要使用ANDOR來組合多個表達式。根據你的嘗試,我假設你希望雙方都滿意。因此您應該使用AND

+0

好的。非常感謝你 – hopeTo

2
String entryHesaplaSQL="SELECT c_id FROM harcamalar WHERE "+C_YIL+"="+yilsql+","+C_AY+"="+aysql; 

是錯誤的,WHERE子句沒有,他們條件之間有 「AND」 或 「OR」

+0

好的。非常感謝 – hopeTo

3
getDataHesaplaSQL="SELECT * FROM harcamalar WHERE "+C_YIL+"="+yilsql+","+C_AY+"="+aysql; 

嗯是逗號在where子句中顯得格格不入。你是不是指" AND ""OR"

+0

是我的意思AND.THANK YOU – hopeTo