2012-03-17 18 views
0

Я делаю проект, основанный на хранении сведений о сотрудниках, таких как имя, идентификатор, время входа и время выхода из системы. Поэтому я создал базу данных для хранения сведений о сотруднике, моя проблема в том, что я динамически получаю значения от пользователя на разных экранах, у меня проблема с хранением значений в базе данных. теперь передаю все значения в один экран и сохраняю их в этом классе, хотя я не получаю время выхода из системы сотрудника. Теперь я использую приведенный ниже код для добавления значений в базу данных.Добавление значений в базу данных в android

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

Есть ли способ сохранить значения в экране базы данных по экрану для одного и того же пользователя? Спасибо заранее.

+0

, пожалуйста, покажите свой код – Andy

+0

Какой код вам нужен? – wolverine

ответ

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; 
} 

Теперь это в вашем первом экране .. вы получите идентификатор записи в базе данных .. Переходим этот идентификатор к следующим действиям с использованием намерений. , а затем в следующем хранилище времени хранения таких значений в базе данных .. и все другие значения могут быть обновлены аналогичным образом в соответствующих действиях .. при передаче идентификатора от первой активности

String strFilter = "_id=" + Id;<--- id from first activity 
ContentValues args = new ContentValues(); 
args.put(TIME_IN,TIME); 
myDB.update(sqlitehelper.LIBRARY, args, strFilter, null); 
+0

Я не могу тебя достать. можно объяснить с помощью примера – wolverine

+0

Я рассказывал, что .. на первой странице .. Предположим, вы получаете имя сотрудника ... затем создайте новую строку с этим именем .. и все поля будут пустыми ... теперь вы получаете идентификатор этой строки из ** «return insertId» ** ... теперь передайте это значение id следующему классу ... и обновите столбцы в этой строке .. поскольку вы получите требуемые значения по очереди ..здесь вы должны всегда передавать идентификатор следующему классу – 5hssba

+0

, вы имеете в виду добавление первого значения и сохранение всех пустых и обновление строки всякий раз, когда мы хотим вставить больше? как это? db.addДетали (новые контакты (client_id, "", "", "")); – wolverine

0

Это общая идея:

Пользователь знает, какой набор данных он хочет изменить/изменить/обновления. Значит, вам известен идентификатор набора данных по-разному. Возможные пути:

  • Выберите пункт Befor вы начинаете вашу деятельность и анализирующий его .putExtra() намерению
  • Пусть пользователь выбрать набор данных он хочет изменить на ativity начать
  • Пусть пользователь выберите, где сохранить информацию, которую он только что создал при сохранении.

Вкратце: идентификатор всегда известен Программе.

И поэтому я хотел бы сделать что-то вроде

if (db.hasDataset(id)) { 
    db.updateDataset(id, updatedInformation);  
} else 
    db.createDataset(id, newDatasetInitInformation); 
} 

в db.updateDataset использовании .update (...) ти где положение как

table.id = selectedId

Функция .update (...) обновляет значения только в объекте contentValues. Если значения отсутствуют, они остаются неизменными.

в db.createDataset вы просто используете .insert() так, как вы это делаете.

для получения дополнительной информации см here