moveToFirst不起作用

时间:2014-11-14 11:35:53

标签: android sqlite android-cursor

我正在使用moveToFirst,效果非常好。但是这个SQL查询不起作用。我不知道为什么。我没有收到任何错误。

我的查询

String sqlKomut = "SELECT SHareket.*,CHareket.[Meblag],Cari.AnlikBakiye FROM CHareket , SHareket,Cari WHERE  CHareket.[CariID]=SHareket.[CariID]=Cari.[CariID]= '"+cari.getCariID()+"' AND  SHareket.[Seri]='"+hareket.getSeri()+"' AND SHareket.[Sira]='"+hareket.getSira()+"'AND SHareket.[Tip]='"+hareket.getTip()+"' AND SHareket.[Cins]='"+hareket.getCins()+"' ORDER BY SHareket.[Satir]"; 

我在这里得到了我的光标getValue:

Cursor cursor = db.rawQuery(sqlKomut, null);

if(cursor !=null){

    if(cursor.moveToFirst()){

        do {
            eleman.setStrEleman(cursor.getString(cursor.getColumnIndex("Seri")));
            eleman.setIntEleman1(cursor.getInt(cursor.getColumnIndex("Sira")));
            eleman.setIntEleman2(cursor.getInt(cursor.getColumnIndex("CariID")));
            eleman.setIntEleman10(cursor.getInt(cursor.getColumnIndex("Cins")));
            eleman.setIntEleman11(cursor.getInt(cursor.getColumnIndex("Tip")));
            eleman.setIntEleman11(cursor.getInt(cursor.getColumnIndex("Satir")));
            eklenenfaturalar.add(eleman);

        } while (cursor.moveToNext());
    }
}

1 个答案:

答案 0 :(得分:0)

WHERE CHareket.[CariID]=SHareket.[CariID]=Cari.[CariID]= '...'

您无法在单个表达式中进行多次比较。 (比较返回一个布尔值,0或1;然后,任何更多的比较将使用此布尔值而不是ID值,例如,您最终得到类似1=Cari.CariID的内容。)

要使用多重比较,请将它们与AND连接(正如您对其他的一样):

WHERE CHareket.[CariID]=SHareket.[CariID]
  AND SHareket.[CariID]=Cari.[CariID]
  AND Cari.[CariID]='...'
  ...