Android Sqlite与查询
我是一个android初学者。我试图搜索整个数据库,找出“传入”号码是否在数据库中,如果它确实存在,则返回true,如果不返回false 我的搜索代码包含在下面,但是它总是返回true,即使我使用数据库中不存在的号码调用它 此外,我应该使用LIKE进行搜索,因为有时输入的号码在城市代码内,例如*0060*172214866或0172214866,。(输入号码的类型为字符串) 提前感谢,并对英语使用不当表示歉意Android Sqlite与查询,android,eclipse,sqlite,Android,Eclipse,Sqlite,我是一个android初学者。我试图搜索整个数据库,找出“传入”号码是否在数据库中,如果它确实存在,则返回true,如果不返回false 我的搜索代码包含在下面,但是它总是返回true,即使我使用数据库中不存在的号码调用它 此外,我应该使用LIKE进行搜索,因为有时输入的号码在城市代码内,例如*0060*172214866或0172214866,。(输入号码的类型为字符串) 提前感谢,并对英语使用不当表示歉意 public boolean searchnumber(String incomii
public boolean searchnumber(String incomiingnumber) {
boolean isit = false;
Cursor c=ourdatabase.query(DATABASE_TABLE, new String[]
{ROW_ID,KEY_NUMBER,N_NAME},
KEY_NUMBER + "=" + incomiingnumber
,null,null,null,null );
if (c != null){
while(c.moveToNext())
isit= true; }
else
{
isit=false;
Log.v(incomiingnumber, "IS NOT it");
}
return isit;
}
在查询后使用movetofirst()
不,没有必要使用Like语句,它返回字符串的完全匹配项。我建议使用Like,然后使用需要比较的最小序列。 试试这个:
public boolean searchnumber(String incomiingnumber) {
String args[] = { "%" + incomingnumber + "%" };
Cursor c = ourdatabase.query(DATABASE_TABLE, new String[] { ROW_ID,
KEY_NUMBER, N_NAME }, KEY_NUMBER + " LIKE ?", args,
null, null, null);
if (c != null) {
c.moveToFirst();
try {
c.getString(1);
c.close();
return true;
} catch (CursorIndexOutOfBoundsException e) {
c.close();
return false;
}
}
return false;
}
尝试使用moveToFirst()。。。谢谢