2013-11-15 59 views
0

我有三個表,我想進行查詢枝條SQL語句,而是因爲它並沒有給我的所有可能結果就不能很好地工作......的Android SQLite的select語句不順利

代碼:

public void setsuchresultat(String pSearchword) 
{ 

    String[] table = new String[]{"tbl_A", "tbl_B", "tbl_C"}; 
    String[] column = new String[]{"columnA", "columnB" }; // Type varchar(50) not null  

    String[] search = new String[]{"%" + pSearchword+ "%", pSearchword+ "%", "%" + pSearchword, pSearchword}; 
    getdata(table,column,search); 
} 

public void getdata(String[] pTable, String[] pColumn, String[] pSearch) 
{ 
    for(String t:pTable) 
    { 
     for(String s : pColumn) 
     { 
      for(String k : pSearch) 
      { 
       Cursor c = this.db.rawQuery("SELECT * FROM " + t + " WHERE " + s + " LIKE '"+ k + "'", null); 
       if ((c.moveToFirst()) || c.getCount() > 0) 
       { 
        while(c.moveToNext())// Suchresultat abspeichern 
        { 
         String col1 = c.getString(c.getColumnIndex("columnA")); 
         String col2 = c.getString(c.getColumnIndex("columnB")); 
        } 
       } 
      } 
     } 
    }  
} 

回答

0

我覺得問題是在你的循環,如果檢查。

變化

if ((c.moveToFirst()) || c.getCount() > 0) 
       { 
        while(c.moveToNext())// Suchresultat abspeichern 
        { 
         String col1 = c.getString(c.getColumnIndex("columnA")); 
         String col2 = c.getString(c.getColumnIndex("columnB")); 
        } 
       } 

if (c.moveToFirst() || c.getCount() > 0) /* OR if (c != null && c.moveToFirst())*/ { 
    do { 
     String col1 = c.getString(c.getColumnIndex("columnA")); 
     String col2 = c.getString(c.getColumnIndex("columnB")); 
    } while(c.moveToNext()); 
} 
+0

是的,先生。非常感謝你! – funk

+0

您最歡迎的:) –