2012-04-18 14 views
2

私は2つのアプリケーションアプリケーションAとアプリケーションBを持っています。私は、imageProviderを使って2つの文字列値をデータベースに保存しています。Where節はアンドロイドでsqlite

アプリケーション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(); 

以下の通りです。その代わりに、正確な生を得るためにwhere節を与えたいと思います。

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

私はこのように変更しましたが、機能しません。どのように私は選択argsを与える必要がありますか?助けてください。

+1

'activity_name'列がテキスト列である可能性はありますか?その場合、値の周りに一重引用符を忘れてしまいました。それは '' activity_name = '"+ info.activityInfo.name +"' "'でなければなりません。 –

+0

info.activityInfo.nameには必須の文字列値が含まれています。それは働くでしょうか? – Kamalone

+0

[WHERE句をアンドロイドでクエリに追加する方法]の複製が可能です(http://stackoverflow.com/questions/3271740/how-to-add-where-clause-to-query-on-android) –

答えて

3

は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); 
+0

最初のもの私は使用しているものと同じですか?私は第二の選択肢でそれを試しています。 – Kamalone

+0

@パル私の編集内容も参照してください。スペースもここにあります。 – ngesh

+0

"activity_name"は列名で、テキストタイプです。 info.activityInfo.nameは、テキスト値を含む変数です。だから私は第二の選択肢を試してみる。ありがとう – Kamalone

0

ある場合は、必要がある...場合

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句に値を入れられるようにします。構文がなければならない 、

カーソルC = mContext.getContentResolver()クエリ(allTitles、投影、 "ACTIVITY_NAME =?"、新しいString [] {} info.activityInfo.name、NULL)。