2014-11-23 3 views
0
// My getBus Function 
Cursor getBus(String source, String dest) 
{ 
    SQLiteDatabase db=this.getReadableDatabase(); 
    Cursor cur=db.rawQuery("SELECT b.BusName FROM BusTable b, (SELECT Route , RBusName FROM RouteBusTable WHERE Route IN ("+source+")) b1, (SELECT Route , RBusName FROM RouteBusTable WHERE Route IN ("+dest+")) c WHERE b.BusName IN (b1.RBusName) AND b.BusName IN (c.RBusName)", new String [] {}); 

    return cur; 
} 

// Retreiving it like this 
Cursor a = dbHelper.getBus("1", "12"); 

    a.moveToFirst(); 
    while (!a.isAfterLast()) 
    { 
     String Name = a.getString(0); 
     Toast.makeText(AddEmployee.this, "Stops Are "+ Name , Toast.LENGTH_LONG).show(); 
     a.moveToNext(); 
    } 

앱을 중지합니다. 내가 뭘 잘못하고 있니? 하위 쿼리 또는 검색에 실수가 있습니까 ?? 모든android sqlite 하위 쿼리가 작동하지 않습니다.

+0

을 제공하십시오. 1. 추적 후 추적. 2. 문자열 주위에 아포 스트로피를 넣으십시오. 'IN (' "+ source +"')) b1' – Ricky

답변

1

먼저 다음과 같은 기호 '에 의해 sourcedest을 인용하려고하면 문제가 여기 있으면

"... WHERE Route IN (\'"+source+"\') ..." 

은 다음 sourcedest에서 여러 값으로이를 방지하는 방법을 생각해야합니다. 특정 경우 제대로 source = "\'1\', \'2\'"처럼 형성 또는 here


P.S.에서 추천을 사용해야합니다 작동하지 않으면 logcat 오류 메시지와 결과 쿼리 (런타임)

+1

고마워, 좋은 답변! –

관련 문제