0

我正在使用 sqlite 编写一个小型应用程序。
调试器说有语法错误。我试过但我找不到它在哪里。

12-20 14:13:40.353: E/SQLiteLog(2329): (1) 靠近 ",": 语法错误

SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase$CursorFactory, String, String[], String, CancellationSignal) line: 1317
SQLiteDatabase.rawQuery(String, String[]) line: 1253
TemporaryDatabase.EntryGiris(int, String, int, int, int, int, int, int, int, int, int) 行: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);
  }

}
 
4

3 回答 3

4

问题在于您的 SQL 查询。

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

SQL 不支持将逗号作为WHERE子句的一部分。您需要使用ANDOR组合多个表达式。根据您的尝试,我假设您希望两者都满意。因此,您应该使用AND.

于 2012-12-20T14:43:33.493 回答
3
getDataHesaplaSQL="SELECT * FROM harcamalar WHERE "+C_YIL+"="+yilsql+","+C_AY+"="+aysql;

嗯,逗号在 where 子句中似乎不合适。你不是说" AND ""OR"吗?

于 2012-12-20T14:43:28.933 回答
2
String entryHesaplaSQL="SELECT c_id FROM harcamalar WHERE "+C_YIL+"="+yilsql+","+C_AY+"="+aysql;

是错误的,WHERE 子句没有,在它们有“AND”或“OR”的条件之间

于 2012-12-20T14:43:25.283 回答