Android开发中使用SQL模糊查找的问题
publicvoidonClick(DialogInterfacedialog,intwhich){//TODOAuto-generatedmethodstubif(wh...
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
if(which==0){
String sql="select * from user where name like'%"+q_s+"%'";
cursor=db.rawQuery(sql, null);
// cursor=db.query("user", new String[]{"name","password"}, "name=?", new String[]{q_s}, null, null, null);
}else if(which==1){
cursor=db.query("user", new String[]{"name","password"}, "password=?", new String[]{q_s}, null, null, null);
}
al.clear();
while(cursor.moveToNext()){
name=cursor.getString(cursor.getColumnIndex("name"));
password=cursor.getString(cursor.getColumnIndex("password"));
hm.put("name", name);
hm.put("password", password);
al.add(hm);
System.out.println(";name---->"+name+";password----->"+password);
}
sa=new SimpleAdapter(ListShow.this, al, R.layout.listview_content, new String[]{"name","password"}, new int[]{R.id._id,R.id._name});
lv.setAdapter(sa);
sa.notifyDataSetChanged();
}
}).create().show();
我用这个代码实现模糊查找,可是出现了问题。
我的数据库有四条记录:“linhh”,"linrh","yougr","rhs"
我模糊查找:lin
结果在lv(ListView)中的确出现了两条记录,但是却都是“linrh”这最后一条记录,并且插入"linsf"之后,出现三条记录,但也都是“linsh”最后一条记录,我觉得是cursor有问题,但是不知道哪里有错。
希望帮个忙。 展开
// TODO Auto-generated method stub
if(which==0){
String sql="select * from user where name like'%"+q_s+"%'";
cursor=db.rawQuery(sql, null);
// cursor=db.query("user", new String[]{"name","password"}, "name=?", new String[]{q_s}, null, null, null);
}else if(which==1){
cursor=db.query("user", new String[]{"name","password"}, "password=?", new String[]{q_s}, null, null, null);
}
al.clear();
while(cursor.moveToNext()){
name=cursor.getString(cursor.getColumnIndex("name"));
password=cursor.getString(cursor.getColumnIndex("password"));
hm.put("name", name);
hm.put("password", password);
al.add(hm);
System.out.println(";name---->"+name+";password----->"+password);
}
sa=new SimpleAdapter(ListShow.this, al, R.layout.listview_content, new String[]{"name","password"}, new int[]{R.id._id,R.id._name});
lv.setAdapter(sa);
sa.notifyDataSetChanged();
}
}).create().show();
我用这个代码实现模糊查找,可是出现了问题。
我的数据库有四条记录:“linhh”,"linrh","yougr","rhs"
我模糊查找:lin
结果在lv(ListView)中的确出现了两条记录,但是却都是“linrh”这最后一条记录,并且插入"linsf"之后,出现三条记录,但也都是“linsh”最后一条记录,我觉得是cursor有问题,但是不知道哪里有错。
希望帮个忙。 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询