0

私は今、この哀れな問題を解決するために何時間も取り組んできました. 私は自分のアプリでチャームとして機能している他の多くのカーソルメソッドを使用しましたが、これは解決するのが本当に困難でした.

public int getCategoryCode(String category){
    int d=0;
    Cursor cg=database.query("categoryTable", null, "category_name='"+category+"'", null, null, null, null);
        cg.moveToFirst();   
    Log.d("success", String.valueOf(cg.getColumnIndex("_id")));

    Log.d("success", String.valueOf(cg.getCount()));

    cg.getInt(cg.getColumnIndex("_id"));
    return d;

列「_id」に保存されている「整数」を取得しようとすると、プログラムは例外を返します。cg.getColumnIndex() が logcat で 0 を返すため、「id」列に結果が存在することを確認しました。助けてください!!

4

3 に答える 3

1

これを試してください(編集済み)!!:

     public int getCategoryCode(String category){
         int d=0;
         Cursor cg= database.rawQuery("SELECT _id FROM categoryTable WHERE category_name = '"+category+"' ",null);

         if(cg.moveToFirst()){
             if(!mCursorActual.isNull(cg.getColumnIndex("_id"))){
               d = cg.getInt(cg.getColumnIndex("_id"));

             } else {
               d = 0;
             }
             cg.close();

                return d;
         }
     }
于 2013-10-10T08:57:48.130 に答える
0

次のコードを使用します。

cursor.moveToFirst();
if(cursor.isAfterLast() == false) {

    // Your logic goes here
}

また、テーブルにデータがあることを確認し、ブレークポイントを使用してクエリが正しいことを確認し、クエリが完了したらカーソル オブジェクトを確認します。

于 2013-10-10T08:58:18.490 に答える