簡體   English   中英

Android sqlite select語句運行不正常

[英]Android sqlite select statement does not work well

我有三個表,我想用sql語句進行查詢,但是它不能很好地工作,因為它不能給我所有可能的結果...

編碼:

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"));
                    }
                }
            }
        }
    }       
}   

我認為問題出在您的循環中,如果檢查。

更改

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());
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM