0

カーソルが機能していないようです。誰か助けてくれませんか?実際、ここの for ループは機能していません。ログは表示されません。これは私のコードです:

public String getAFact(int rowNumber)
    {
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor c = db.rawQuery("select mfacts from mfacts where osl_number=" + rowNumber + ";", null);
        for(c.moveToFirst();!c.isAfterLast();c.moveToNext()) {
            rowData = c.getString(c.getColumnIndex(KEY_NAME));
            Log.i("log_tag", "cursor isn't f**ked up..."+rowData);
        }
        c.close();
        db.close();
        return rowData;
    }
}

とにかく、次のコードは正常に機能し、レコード数を正しく表示しています!

public int countRowsInDb()
    {
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor c = db.rawQuery("select * from mfacts",null);
        Log.i("Number of Records"," :: "+c.getCount());
        db.close();
        int c_getCount = c.getCount(); 
        c.close();
        return c_getCount;
    }
4

2 に答える 2

1

SQLステートメントがオフになっていると思います。データの行全体を取得しようとしているようです。試してみてください

"select * from mfacts where osl_number=" + rowNumber + ";"

あなたのクエリとして。

于 2012-12-22T03:57:22.993 に答える
0

Uはこれを試すことができます..

  if (cursor.moveToFirst())
            {                       
                for (int i = 0; i < cursor.getCount(); i++)
                {
                    //Your logic goes here//
                    cursor.moveToNext();
//                   
                }           
            }
            cursor.close();
            db.close();
于 2012-12-22T05:56:06.300 に答える