2014-11-23 166 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 2014-11-23 14:20:08

回答

1

首先嚐試通過「符號引用sourcedest這樣的:

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

如果問題是在這裏,那麼你應該考慮如何與多個值避免這種情況在sourcedest。 在您的特定情況下,你應該正確喜歡source = "\'1\', \'2\'"形成,或使用建議從here


附:如果它不起作用,請提供logcat錯誤信息和生成的查詢(在運行時)

+1

Thanks Man,A Answer Answer! – 2014-11-23 17:58:18