我尝试使用id = x
查询并获取一个数据。
我的method
是:
public Cursor getDataWithId(String id) {
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.rawQuery("select * from urun_table where ID = "+id,null);
return res;
}
我这样做错了吗?因为我认为,我没有正确理解selectionArgs
。
谢谢。
答案 0 :(得分:2)
您可以使用以下内容:
String TABLE_URUN = "urun_table";
String KEY_ID = "ID";
public Cursor getDataWithId(String id) {
SQLiteDatabase db = this.getWritableDatabase();
String query = String.format("SELECT * FROM %s WHERE %s = ?", TABLE_URUN, KEY_ID);
Cursor res = db.rawQuery(query, new String[]{id});
return res;
}
一样
selectionArgs 字符串:您可以在查询中的where子句中包含?s, 它将被selectionArgs中的值替换。价值 将被绑定为字符串。
因此,如果您想对以下内容使用多个选项:
SELECT * FROM TABLE WHERE KEY_ID = id AND KEY_OTHER = otherValue
你只需要添加多个“?”和selectionArgs参数中的字符串:
String KEY_OTHER = "other";
public Cursor getDataWithId(String id, String other) {
String query = String.format("SELECT * FROM %s WHERE %s = ? AND %s = ?", TABLE_URUN, KEY_ID, KEY_OTHER);
Cursor res = db.rawQuery(query, new String[]{id, other});
return res;
}
答案 1 :(得分:-1)
试试这个
public Cursor getDataWithId(String id) {
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.rawQuery("select * from urun_table where ID = '" + id + "'", null);
return res;
}