每当我使用以下代码将多个记录插入表中时,它只会插入最后一个初始化值。
这是将数据插入表格的方法:
public long insertQuote() {
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_PHID, 100);
initialValues.put(KEY_LAT, 28.5700);
initialValues.put(KEY_LAT, 28.4700);
initialValues.put(KEY_LAT, 27.1833);
initialValues.put(KEY_LAT, 26.4583);
initialValues.put(KEY_LON, 77.3200);
initialValues.put(KEY_LON, 77.0300);
initialValues.put(KEY_LON, 78.0167);
initialValues.put(KEY_LON, 80.3173);
return db.insert(DATABASE_TABLE, null, initialValues);
}
在这种情况下,对于列键" KEY_LAT"我只能看到最后的初始化值" 26.4583"在logcat上的S.O.P(Sys.out.println)输出上。
对于其他列键" KEY_LON"也是如此。我只能看到这两个记录。
我认为他们没有像put()
方法那样插入到表中,方法会跳过以前的"to-be-inserted"
值并接受最后一个特别栏目。
感谢任何帮助。感谢。
答案 0 :(得分:4)
这种情况正在发生,因为您正在为所有人使用相同的密钥LAT和LON。那被覆盖了。
您应该使用不同的键,例如
public long insertQuote() {
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_PHID, 100);
initialValues.put(KEY_LAT1, 28.5700);
initialValues.put(KEY_LAT2, 28.4700);
initialValues.put(KEY_LAT3, 27.1833);
initialValues.put(KEY_LAT4, 26.4583);
initialValues.put(KEY_LON1, 77.3200);
initialValues.put(KEY_LON2, 77.0300);
initialValues.put(KEY_LON3, 78.0167);
initialValues.put(KEY_LON4, 80.3173);
return db.insert(DATABASE_TABLE, null, initialValues);
}
编辑:
所以你应该使用这种方法。
public long insertQuote() {
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_PHID, 100);
initialValues.put(KEY_LAT, 28.5700);
initialValues.put(KEY_LON, 77.3200);
db.insert(DATABASE_TABLE, null, initialValues);
initialValues.put(KEY_LAT, 28.4700);
initialValues.put(KEY_LON, 77.0300);
db.insert(DATABASE_TABLE, null, initialValues);
initialValues.put(KEY_LAT, 27.1833);
initialValues.put(KEY_LON, 78.0167);
db.insert(DATABASE_TABLE, null, initialValues);
initialValues.put(KEY_LAT, 26.4583);
initialValues.put(KEY_LON, 80.3173);
return db.insert(DATABASE_TABLE, null, initialValues);
}