2012-12-20 53 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