2013-04-09 165 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