我在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”...
请帮忙。感谢
答案 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());
}