2013-11-15 3 views
0

У меня есть три таблицы, и я хочу сделать заявление SQL Withe запрос, но он не работает хорошо, потому что он не дает мне все возможные результаты ...Android SQLite оператор выбора не работает

Код:

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

Ваше приветствие :) –

Смежные вопросы