我正在创建一个应用程序。我需要已保存在第一个表中的现有用户的电子邮件,并将其保存到第二个表中。我需要哪些查询或功能来实现这一目标?有什么建议吗?
答案 0 :(得分:1)
首先,您需要通过传递有效的行ID来获取用户的电子邮件:
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列。