我正在做一个基于存储员工详细信息的项目,例如名称,ID,登录时间和注销时间。所以我创建了一个数据库来存储员工的详细信息,我的问题是我在不同的屏幕上从用户动态获取值,我将值存储到数据库中时出现问题。现在我将所有值传递到一个屏幕并将它们存储在该类中,即使我没有得到员工的注销时间。现在使用以下代码将值添加到数据库中。
db.addDetails(new Contact(client_id, empn, timein, "6.30PM"));
有没有办法将屏幕上的值存储到同一个用户的数据库屏幕中? 提前谢谢。
答案 0 :(得分:0)
这是一般的想法:
用户知道他想要编辑/更改/更新的数据集。 因此,您可以了解各种方式的数据集标识符。可能的方法:
简而言之:程序员始终知道ID。
因此我会做类似
的事情if (db.hasDataset(id)) {
db.updateDataset(id, updatedInformation);
} else
db.createDataset(id, newDatasetInitInformation);
}
db.updateDataset中的你使用.update(...)和where子句一样
table.id = selectedId
.update(...)函数仅更新contentValues对象中的值。如果缺少值,则保持不变。
在db.createDataset中你只需要按照你想象的那样使用.insert()。
有关详细信息,请参阅here
答案 1 :(得分:0)
试试这个..
public long createemployee(String name) {
ContentValues values = new ContentValues(1);
values.put(sqlitehelper.COLUMN_NAME,name);
long insertId = database.insert(sqlitehelper.LIBRARY, null,values);
return insertId;
}
现在把它放在你的第一个屏幕上......你将获得数据库中条目的id ..现在使用意图将此id传递给下一个活动.. 然后在下一个活动存储时间值这样的数据库...所有其他值可以在相应的活动中以类似的方式更新..从第一个活动传递id
String strFilter = "_id=" + Id;<--- id from first activity
ContentValues args = new ContentValues();
args.put(TIME_IN,TIME);
myDB.update(sqlitehelper.LIBRARY, args, strFilter, null);