我正在使用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 [])行: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);
}
}
答案 0 :(得分:4)
问题在于您的SQL查询。
SELECT "+C_ID+" FROM harcamalar WHERE "+C_YIL+"="+yilsql+","+C_AY+"="+aysql;
SQL不支持逗号作为WHERE
子句的一部分。您需要使用AND
和OR
来组合多个表达式。根据你的尝试,我认为你们都希望两者都满意。因此,您应该使用AND
。
答案 1 :(得分:3)
getDataHesaplaSQL="SELECT * FROM harcamalar WHERE "+C_YIL+"="+yilsql+","+C_AY+"="+aysql;
嗯,逗号似乎在where子句中不合适。您的意思是" AND "
还是"OR"
?
答案 2 :(得分:2)
String entryHesaplaSQL="SELECT c_id FROM harcamalar WHERE "+C_YIL+"="+yilsql+","+C_AY+"="+aysql;
错误,WHERE子句没有,在条件之间它们有“AND”或“OR”