查询“select where”在sqlite android中返回没有匹配的数据

时间:2013-04-09 09:33:14

标签: android sqlite

我在select where中遇到查询sqlite子句的问题。当我尝试将textView的数据与database进行匹配时,它会返回没有匹配的数据。

我的查询功能

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

在第一个代码中,它的全部运行到if(add.equals(""))条件,因此它将显示“Anda tidak ada tugas di lokasi sekarang”... 请帮忙。感谢

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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());
            }