2013-04-09 162 views
0

我在sqlite中查詢select where子句時遇到問題。當我嘗試將textViewdatabase的數據進行匹配時,它不會返回任何匹配的數據。查詢「select where」在sqlite中返回無匹配數據android

我的查詢功能

public void cekPosisi(String txtAlamat) { 
    String add = ""; 
    String alarm = ""; 
    Cursor cur = db.rawQuery("select * from task_table where alamat = '" + 
      txtAlamat + "'", null); 
    if(cur.moveToFirst()) { 
     add = cur.getString(5); 
     alarm = "Anda ada tugas di lokasi: " + add; 
     for (; !cur.isAfterLast(); cur.moveToNext()) { 
      add = cur.getString(5); 
      alarm = "Anda ada tugas di lokasi: " + add; 
     } 
    } 
    if(add.equals("")) { 
     add = "Anda tidak ada tugas di lokasi sekarang"; 
     alarm = "" + add; 
    } 
    Toast.makeText(this, alarm, Toast.LENGTH_LONG).show(); 
} 

實施了

//cek tugas 
    this.cariTugas.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      txtAddr = teksAlamat.getText().toString(); 
      Log.d("alamat textView", txtAddr); 
      cekPosisi(txtAddr); 
     } 
    }); 

在第一個代碼,它是alaways運行到if(add.equals(""))條件,因此會顯示 「安達tidak ADA tugas迪lokasi sekarang」 ... 請任何幫助。由於

+0

[奧卡姆剃刀(http://en.wikipedia.org/wiki/Occam's_razor)...有在數據庫中沒有數據...或者teksAlamat包含空格 – Selvin 2013-04-09 09:35:56

+2

在查詢中嘗試'txtAlamat.trim()' – 2013-04-09 09:39:11

+0

'task_table'有多少列? – Squonk 2013-04-09 09:40:37

回答

0

使用如下:

Cursor cur = db.rawQuery("select * from task_table where alamat = '%" + 
     txtAlamat + "%'", null); 

檢查這link有例如與LIKE查詢。並在查詢中使用通配符(模式中缺少字母)。

編輯:

Cursor cursor = db.rawQuery("select * from task_table where alamat = '%" + 
      txtAlamat + "%'", null); 
    if(cursor){ 
     Toast.makeText(this, "no data", Toast.LENGTH_LONG).show(); 
    } 
    if (cursor.moveToFirst()) { 
       do { 
         add = cur.getString(5); 
         if(!add.equalsIgnoreCase("")){ 
         alarm = "Anda ada tugas di lokasi: " + add; 
         }else{ 
         add = "Anda tidak ada tugas di lokasi sekarang"; 
         alarm = "" + add; 
         } 
       } while (cursor.moveToNext()); 
      } 
+0

它仍然沒有返回..順便說一句,謝謝.. – 2013-04-09 16:15:41

+0

你有任何數據插入數據庫?? ?? – 2013-04-10 04:39:33

+0

當然是先生 – 2013-04-10 04:40:51

0
//cek tugas 
    this.cariTugas.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      txtAddr = teksAlamat.getText().toString().trim(); 
      Log.d("alamat textView", txtAddr); 
      if(txtAddr != null && !txtAddr.equals("")){ 
       cekPosisi(txtAddr); 
      }else{ 
       Log.d("","Please enter value again"); 
      } 
      } 
     }); 


//if you have data in the database then you will have values accordingly 
+0

它仍然沒有返回。我試圖用sqlite瀏覽器手動查詢使用「選擇*」和結果不爲空 – 2013-04-09 16:14:09