android中的sqlite中的where子句

时间:2012-04-18 12:14:04

标签: android sqlite

我有两个应用程序应用程序A和应用程序B.从A我通过使用contentProvider将两个字符串值保存到数据库中。

从应用程序B我正在访问此数据库并获取图像。我正在使用的代码如下所示

byte b[] = null;
Cursor c = mContext.getContentResolver().query(allTitles, projection,null, null, null);
if (c.moveToFirst()) {
    do{
        if(info.activityInfo.name !=   null) {
            if(c.getString(1).equals(info.activityInfo.name)){
                b=c.getBlob(0);
            }
        }
    } while (c.moveToNext());
}
c.close();

这里在选择区域我给出了null所以我得到了数据库中的所有值,我必须运行这个循环。而不是我想要一个where子句来获得确切的原始。

Cursor c = mContext.getContentResolver().query(allTitles, projection,"activity_name ="+info.activityInfo.name, null, null);

所以我改变了这样但是没有用。我应该如何给出选择参数?请帮忙。

2 个答案:

答案 0 :(得分:3)

尝试..

Cursor c = mContext.getContentResolver().query(allTitles, projection,"activity_name = "+info.activityInfo.name, null, null);

or

Cursor c = mContext.getContentResolver().query(allTitles, projection,"activity_name = ? ", new String[]{info.activityInfo.name}, null);

如果activity_name是文本

Cursor c = mContext.getContentResolver().query(allTitles, projection,"activity_name = "+"'"+info.activityInfo.name+"'", null, null);

    or

    Cursor c = mContext.getContentResolver().query(allTitles, projection,"activity_name = ? ", new String[]{"'"+info.activityInfo.name+"'"+}, null);

答案 1 :(得分:0)

你需要'?' Android用于在WHERE子句中为您输入值。 语法应该是,

Cursor c = mContext.getContentResolver()。query(allTitles,projection,“activity_name =?”,new String [] {info.activityInfo.name},null);