在android中向数据库添加值

时间:2012-03-17 05:40:20

标签: android sqlite

我正在做一个基于存储员工详细信息的项目,例如名称,ID,登录时间和注销时间。所以我创建了一个数据库来存储员工的详细信息,我的问题是我在不同的屏幕上从用户动态获取值,我将值存储到数据库中时出现问题。现在我将所有值传递到一个屏幕并将它们存储在该类中,即使我没有得到员工的注销时间。现在使用以下代码将值添加到数据库中。

db.addDetails(new Contact(client_id, empn, timein, "6.30PM"));

有没有办法将屏幕上的值存储到同一个用户的数据库屏幕中? 提前谢谢。

2 个答案:

答案 0 :(得分:0)

这是一般的想法:

用户知道他想要编辑/更改/更新的数据集。 因此,您可以了解各种方式的数据集标识符。可能的方法:

  • 选择您开始活动的项目,并通过.putExtra()解析意图
  • 让用户选择他想要在活动开始时编辑哪个数据集
  • 让用户选择,保存他刚刚保存的信息的位置。

简而言之:程序员始终知道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);
相关问题