#java #sqlite #android-sqlite
#java #sqlite #android-sqlite
Вопрос:
Я создаю приложение. Мне нужна электронная почта существующего пользователя, которая уже сохранена в первой таблице, и сохраните ее во второй таблице. Какие запросы или функции мне нужны для достижения этого? Есть предложения?
Комментарии:
1. Вам просто нужно получить пользователя, а затем создать функцию вставки, чтобы повторно вставить его в другую таблицу.
Ответ №1:
Сначала вам нужно получить электронную почту пользователя, передав действительный идентификатор строки:
public Cursor getRecord(long id) throws SQLException {
Cursor cursor = this.database.query(true, databaseTable, new String[] {columnId, columnName, columnEmail}, columnId "=" id, null, null, null, null, null);
if (cursor != null) {
cursor.moveToFirst();
}
return cursor;
}
Пожалуйста, обратите внимание, что у вас могут быть разные столбцы, поэтому измените String[]
массив на указанные вами столбцы. Теперь мы можем создать другую функцию для сохранения этой электронной почты в другой таблице следующим образом:
public long insertExistingUser(String name, String email) {
ContentValues contentValues = new ContentValues();
contentValues.put(columnName, name);
contentValues.put(columnEmail, email);
return this.database.insert(otherDatabaseTable, null, contentValues);
}
Это приведет к вставке информации другого пользователя в другую таблицу. Для того, чтобы это работало в вашем приложении:
DatabaseAdapter db = new DatabaseAdapter(this);
db.open();
Cursor cursor = db.getRecord(current_user_id);
if (db.insertExistingUser(cursor.getString(1), cursor.getString(2)) > 0)
Toast.makeText(this, "Old user's info was inserted!", Toast.LENGTH_SHORT).show();
db.close();
cursor.getString(1)
Требуется число, указывающее, какой это столбец. Обычно 0
это столбец id, который вы используете для получения электронной почты пользователя.