ok this isn't spamming and it's supposed to be simple I don't know why it's not working this is my code:
gamesdatabase = openOrCreateDatabase("GamesDatabase", MODE_PRIVATE, null);
gamesdatabase.execSQL("CREATE TABLE IF NOT EXISTS Games (ID INTEGER PRIMARY KEY, Name
VARACHAR, NPlayers INT(1), NRounds INT(2), WinScore INT(2));");
gamesdatabase.execSQL("INSERT INTO Games
(ID, Name, NPlayers, NRounds, WinScore ) VALUES ( NULL, 'TAWLA',2,0,0 );");
gamesdatabase.execSQL("INSERT INTO Games
(ID, Name, NPlayers, NRounds, WinScore ) VALUES ( NULL, 'DOMANA',4,0,0 );");
Cursor c = gamesdatabase.rawQuery("SELECT * FROM Games", null);
c.moveToFirst();
while (c.isAfterLast() == false) {
Log.d("BEZRA", String.valueOf(c.getInt(c.getColumnIndex("ID"))));
c.moveToNext();
}
what's wrong with this ? the log displays 0 for all records
You can see http://alvinalexander.com/android/sqlite-autoincrement-serial-identity-primary-key Example CRETAE_TABLE
INSERT_DATA
---OR---
c.getColumnIndex("ID")
gets the index of the column, which ID is 0 indexed column, Name is 1 etcyou want
c.getInt(c.getColumnIndex("ID"))
You want to tell it that the column is auto incrementing.
instead.
Because You didn't set it to auto increment. Primary key is not enough.
The primary key for SQLite tables is called _id. It is auto incrementing, and you should not be trying to insert values into it.
What worked for me was renaming my create type from INT to INTEGER and it started working.
From this:
to this: