Where clause in sqlite in android



我有两个应用程序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);

所以我像这样改变了,但它没有奏效。我应该如何给出选择参数?请帮忙。

试试。

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);
你需要

一个'?',让Android在WHERE子句中为你输入值。语法应该是,

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

最新更新