当我插入数据然后插入id总是返回-1这是我的数据库table.my数据库是成功创建的。那么,请告诉我如何解决这个问题。
query3 = "CREATE TABLE IF NOT EXISTS `" + StaticData.SUBJECT_TABLE_NAME + "` ("
+ "`subject_id` int(11) NOT NULL,"
+ "`subject_name` varchar(100) DEFAULT NULL,"
+ " PRIMARY KEY (`subject_id`)"
+ ");";
public long insertSubject(TeacherModel queryValues) {
long insertId = -1;
ContentValues values = new ContentValues();
values.put("id", queryValues.getSubject_id());
values.put("name", queryValues.getSubject());
if(database != null) {
insertId = database.insert(StaticData.SUBJECT_TABLE_NAME, null,
values);
}
Log.w(DataInteract.class.getName(),
"Subject::" + values + "insertID=" + insertId);
return insertId;
}
答案 0 :(得分:0)
您的代码存在一些问题,请查看以下更正
据我所知,insertID应始终等于您尝试插入的subject_id,如果此假设不正确,则需要在表中添加不同的列。
你做错的事情:表格创建错误,你使用MySQL
代码而不是SQLite
,它可能在某些情况下有用,但不建议。
您的values
(ContentValues()
)中的列名错误,如果您的数据库不存在,您仍然会得到-1。
query3 = "CREATE TABLE IF NOT EXISTS `" + StaticData.SUBJECT_TABLE_NAME + "` ("
+ "`subject_id` INTEGER PRIMARY KEY,"
+ "`subject_name` TEXT"
+ ");";
public long insertSubject(TeacherModel queryValues) {
long insertId = -1;
ContentValues values = new ContentValues();
values.put("subject_id", queryValues.getSubject_id());
values.put("subject_name", queryValues.getSubject());
if(database != null) {
insertId = database.insert(StaticData.SUBJECT_TABLE_NAME, null,
values);
}
Log.w(DataInteract.class.getName(),
"Subject::" + values + "insertID=" + insertId);
return insertId;
}