你好朋友我是android.well的新手我创建了一个数据库表,我有几行如下
_id name city
1 maddy0 xyz0
2 maddy1 xyz1
3 maddy2 xyz2
现在我要将城市传递给该函数并获取该城市的行ID
说我是xyz0然后它应该给我那个输出为1。因为我尝试了这个
public String getDatatonumber(String s) {
Cursor c = null;
String result = new String();
// TODO Auto-generated method stub
// String[] columns = new String[]{ KEY_ROWID, KEY_NAME, KEY_SCORE};
try {
c = ourDatabase.rawQuery(
"select _id from quotes_internal where text ='"+s+"';", null);
// Cursor c = ourDatabase.query(DATABASE_TABLE_LOGICAL, columns,
// null, null, null, null, null);
int iName = c.getColumnIndex(KEY_ROWID);
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
result=(" " + c.getInt(iName));
}
} catch (Exception e) {
// TODO: handle exception
} finally {
c.close();
}
return result;
}
我把这段代码放在数据库助手类中,并从我称之为
的主要活动中results =new String();
results=db.getDatatonumber(texts).trim();
text.settext(results);
我无法理解我出错的地方我传递了数据库中的相同值。
答案 0 :(得分:0)
在与Text
比较时,您需要使用LIKE Operatorc = ourDatabase.rawQuery("select _id from quotes_internal where text LIKE '" + s.trim() + "';", null );
答案 1 :(得分:0)
c = ourDatabase.rawQuery(
"select _id from quotes_internal where city='"+s+"';", null);
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
result=(" " + c.getColumnIndex("_id"));
}
这将返回您的行ID