Android Studio 有两张数据库表db和db2。db有两条数据,一共有5列,number列是db的主键。现在在edittext输入编号,当输入的编号等于db表某一行的number列或name列的值时,将该行所有数据插入db2表
时间: 2024-02-13 08:01:12 浏览: 48
好的,针对你的问题,可以使用以下代码实现:
```java
// 获取输入的编号
String input = editText.getText().toString();
// 查询db表中是否存在该编号或者名称
Cursor cursor = db.rawQuery("SELECT * FROM db WHERE number = ? OR name = ?", new String[]{input, input});
// 如果存在,则插入到db2表中
if (cursor.moveToFirst()) {
do {
ContentValues values = new ContentValues();
values.put("number", cursor.getInt(cursor.getColumnIndex("number")));
values.put("name", cursor.getString(cursor.getColumnIndex("name")));
values.put("age", cursor.getInt(cursor.getColumnIndex("age")));
values.put("gender", cursor.getString(cursor.getColumnIndex("gender")));
values.put("address", cursor.getString(cursor.getColumnIndex("address")));
db2.insert("db2", null, values);
} while (cursor.moveToNext());
}
// 关闭资源
cursor.close();
```
这段代码会从`editText`中获取输入的编号,然后查询`db`表中是否存在该编号或者名称。如果存在,则将该行所有数据插入到`db2`表中。
需要注意的是,这段代码中的`db`和`db2`分别表示两张表的`SQLiteDatabase`对象,需要在代码中进行初始化。另外,`db2`表需要在数据库中提前创建好。
阅读全文