Android Java语法错误

时间:2012-12-20 14:39:20

标签: java android sqlite android-sqlite

我正在使用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);
  }

}

3 个答案:

答案 0 :(得分:4)

问题在于您的SQL查询。

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

SQL不支持逗号作为WHERE子句的一部分。您需要使用ANDOR来组合多个表达式。根据你的尝试,我认为你们都希望两者都满意。因此,您应该使用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”