Java SQLite自动增量
我的表是这样创建的:Java SQLite自动增量,java,android,sqlite,Java,Android,Sqlite,我的表是这样创建的: db.execSQL("CREATE TABLE reminder (" + "id INTEGER PRIMARY_KEY AUTO_INCREMENT," + "title VARCHAR(100)," + "content VARCHAR(500)," + "due LONG," + "alarm LONG," + "
db.execSQL("CREATE TABLE reminder (" +
"id INTEGER PRIMARY_KEY AUTO_INCREMENT," +
"title VARCHAR(100)," +
"content VARCHAR(500)," +
"due LONG," +
"alarm LONG," +
"priority INT" +
");");
和插入的值:
ContentValues cv=new ContentValues();
cv.put("title",t.title);
cv.put("content",t.content);
cv.put("due",t.date.getTimeInMillis());
cv.put("alarm",(t.alarm==null?0L:t.alarm.getTimeInMillis()));
cv.put("priority",t.severity);
SQLiteDatabase d=getWritableDatabase();
d.insert("reminder",null, cv);
d.close();
但当我试图通过以下方式获得我的价值观:
Task task=new Task();
task.id=c.getInt(0);
task.title=c.getString(1);
task.content=c.getString(2);
Calendar due=new GregorianCalendar();
due.setTimeInMillis(c.getLong(3));
task.date=due;
if(c.getLong(4)!=0){
Calendar alert=new GregorianCalendar();
alert.setTimeInMillis(c.getLong(4));
task.alarm=alert;
}
task.severity=c.getInt(5);
return task;
我得到的id总是等于零。知道怎么修吗?下划线有点不合适。尝试id整数主键自动递增
请尝试此解决方案:
db.execSQL("CREATE TABLE reminder (" +
"'_id' INTEGER PRIMARY_KEY AUTO_INCREMENT," +
"title VARCHAR(100)," +
"content VARCHAR(500)," +
"due LONG," +
"alarm LONG," +
"priority INT" +
");");
更改了_id的id。为什么我的android sqlite有不同的语法?顺便说一句,它没有更改。您是否尝试使用cv.put设置id为空?但问题是,在OpenSQLHelper中,它不起作用。知道为什么吗?事实证明,这个问题可能是由于id丢失引起的。啊,是的,Android适配器喜欢他们的id。