0

のクエリ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」が表示されます...助けてください。ありがとう

4

2 に答える 2

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
于 2013-04-09T09:43:19.047 に答える
0

以下のように使用します。

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

LIKEクエリの例があるこのリンクを確認してください。また、Query でワイルドカード (パターン内の欠落文字) を使用します。

編集:

    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());
            }
于 2013-04-09T10:10:22.063 に答える