Автоинкремент SQLite не работает

хорошо, это неспам и этодолжно быть просто я нене знаю почему этоне работает, это мой код:

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();
}

какие'не так с этим? журнал отображает 0 для всех записей

 Graham Borland30 мая 2013 г., 12:55
То, как вы просматриваете значения курсора, слишком сложно. смотреть наstackoverflow.com/questions/10723770/...
 njzk230 мая 2013 г., 11:26
автоинкрементные работы. Вы просто должны его использовать.

Ответы на вопрос(6)

c.getColumnIndex("ID") получает индекс столбца, идентификатор которого равен 0 индексированному столбцу, имя равно 1 и т. д.

ты хочешь

c.getInt(c.getColumnIndex("ID"))

 Greener11 нояб. 2016 г., 00:47
Это решило проблему с моим кодом. Спасибо!
 BezrA30 мая 2013 г., 11:31
Это'Так в коде это была моя вина при копировании, и этоне работает спасибо
Решение Вопроса

еличение, и вы не должны пытаться вставить в него значения.

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 
(Name, NPlayers, NRounds, WinScore ) VALUES ('TAWLA',2,0,0 );");

gamesdatabase.execSQL("INSERT INTO Games 
(Name, NPlayers, NRounds, WinScore ) VALUES ('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();
}
 BezrA30 мая 2013 г., 11:52
спасибо, что сделали свое дело. наиболее ценится.
 marlonpya04 дек. 2016 г., 20:16
Да, мужчины не работают, если добавить auto_increment
 BezrA30 мая 2013 г., 11:52
Я бы хотел проголосовать, но моя репутация меньше 15, но это ответ
 Patrick Evans30 мая 2013 г., 12:45
Вы не голосуете, вы принимаете ответ LOL
 BezrA30 мая 2013 г., 11:32
позвольте мне попробовать это звучит многообещающе
 BezrA22 февр. 2014 г., 10:09
лол спасибо. :)

о ключа недостаточно.

CREATE TABLE IF NOT EXISTS Games (ID INTEGER PRIMARY KEY AUTOINCREMENT, Name VARACHAR, NPlayers INT(1), NRounds INT(2), WinScore INT(2));
 Patrick Evans30 мая 2013 г., 11:37
@Gustek, sqlite предполагает автоинкремент для поля, указанного с помощью PRIMARY KEY
 BezrA30 мая 2013 г., 11:29
Я установил AUTOINCREMENT и нет, а затем я прочитал, что первичный ключ более чем достаточно
 njzk224 сент. 2013 г., 09:33
в соответствии с sqlitesqlite.org/autoinc.html документации, PK достаточно для получения уникальных идентификаторов, и обычно они монотонны (если вы не зададите себе какой-то странный идентификатор)
 Gustek30 мая 2013 г., 11:30
Я написал НЕ достаточно. Вам нужен и первичный ключ, и автоинкремент.

и оно начало работать.

Из этого:

CREATE TABLE IF NOT EXISTS foo (id INT PRIMARY KEY, bar INT)

к этому:

CREATE TABLE IF NOT EXISTS foo (id INTEGER PRIMARY KEY, bar INT)

Ты можешь видетьhttp://alvinalexander.com/android/sqlite-autoincrement-serial-identity-primary-key пример CRETAE_TABLE

  CREATE TABLE salespeople (
  id INTEGER PRIMARY KEY,
  first_name TEXT NOT NULL,
  last_name TEXT NOT NULL,
  commission_rate REAL NOT NULL
);

INSERT_DATA

 INSERT INTO salespeople VALUES (null, 'Fred', 'Flinstone', 10.0);

---ИЛИ ЖЕ---

INSERT INTO salespeople (first_name, last_name, commission_rate) VALUES ('Fred', 'Flinstone', 10.0);

что столбец автоматически увеличивается.

ID INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL

вместо.

 BezrA30 мая 2013 г., 12:53
это нене работает, но в любом случае спасибо, трюк был в переименовании идентификатора в _id, AUTOINCREMENT не требуется, когда вы используете целочисленный первичный ключ

Ваш ответ на вопрос