Je crée une application pour enregistrer des affectations pour différentes classes. Chaque classe a son propre ID unique, de sorte que les affectations répertoriées pour chaque classe ne se chevauchent pas dans d'autres classes. Voici une méthode que j'ai faite pour trouver le rowid pour une certaine classe.Utiliser SQLite dans Android pour obtenir RowID
public int getIdFromClassName(String className){
String query = "SELECT rowid FROM " + CLASSES_TABLE_NAME + " WHERE " + CLASSES_COLUMN_NAME + " = '" + className + "'";
SQLiteDatabase db = this.getReadableDatabase();
Cursor res = db.rawQuery(query, null);
return res.getColumnIndex("id");
}
Cependant, cela renvoie toujours la valeur -1.
Des réflexions sur ce qu'il faut changer pour retourner la bonne valeur rowid?
EDIT:
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(
"create table " + CLASSES_TABLE_NAME + " " +
"(id integer primary key, " + CLASSES_COLUMN_NAME + " text)"
);
db.execSQL(
"create table " + ASSIGNMENTS_TABLE_NAME + " " +
"(id integer primary key, " + ASSIGNMENTS_COLUMN_NAME + " text, " + ASSIGNMENTS_COLUMN_TOTAL_POINTS
+ " INTEGER, " + ASSIGNMENTS_COLUMN_CLASS_ID + " INTEGER)");
}
avez-vous essayé? return res.getString (res.getColumnIndex ("id")); – kulvinder
Cela reviendrait une chaîne, mais je cherche l'id sous la forme d'un – Kinoscorpia
int il dépend ... le type de données que vous utilisez pour id ... je pense que vous pouvez également utiliser getInt .. si son type de données est nombre entier – kulvinder