J'essaie de parcourir mes enregistrements de base de données. mais pour une raison quelconque, il retourne toujours un curseur vide. Si je retire de l'émulateur le fichier de base de données de l'onglet 'Explorateur de fichiers', je peux voir la table et les données qui s'y trouvent.rawQuery return retourne toujours false
voici mon code:
Cursor result = db.getReadableDatabase().rawQuery(
"SELECT _ID, STUDENT_NAME, STUDENT_GRADE, STUDENT_ADDRESS "
+ "FROM students", null);
while (!result.moveToNext())
{
int id = result.getInt(0);
String studentName = result.getString(1);
String studentGrade = result.getString(2);
String studentAddress = result.getString(3);
Log.d("Sqlitedemo", "ID=" + id + ", STUDENT_NAME=" + studentName +", STUDENT_GRADE="+studentGrade+", STUDENT_ADDRESS="+studentAddress);
}
result.close();
maintenant while (! Result.moveToNext()) reviennent toujours faux.
c'est ma classe DatabaseHelper:
public class DatabaseHelper extends SQLiteOpenHelper
{
private static final String DATABASE_NAME = "db";
static final String STUDENT_NAME = " STUDENT_NAME";
static final String STUDENT_GRADE = "STUDENT_GRADE";
static final String STUDENT_ADDRESS = "STUDENT_ADDRESS";
public DatabaseHelper(Context context)
{
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db)
{
// creating the table
db
.execSQL("CREATE TABLE students (_id INTEGER PRIMARY KEY AUTOINCREMENT, STUDENT_NAME TEXT, STUDENT_GRADE TEXT, STUDENT_ADDRESS TEXT);");
ContentValues cv = new ContentValues();
cv.put(STUDENT_NAME, "Roi");
cv.put(STUDENT_GRADE, "85");
cv.put(STUDENT_ADDRESS, "Tel aviv");
db.insert("students", STUDENT_NAME, cv);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
// TODO Auto-generated method stub
}
}
une idée?
Merci, ray.
"maintenant while (! Result.moveToNext()) retourne toujours false." parce que result.moveToNext() renvoie true, supprimez le! – Carnal