db.execSQL("update user set Name=? ,Nickname=?,Age=?",new Object[]{name,nickname,age}); Cursor cursor= db.rawQuery("select*from user where Account=?",new String[]{account}); editTextname.setText(cursor.getString(2)); editTextnickname.setText(cursor.getString(3)); editTextage.setText(cursor.getString(4)); cursor.close();显示更新的数据哪错了
时间: 2024-01-18 10:02:21 浏览: 99
EXEC_SQL.rar_EXEC S_Exec开发人员_delphi ex_exec sql_exec_sql.e
这段代码有几个问题:
1. `update` 语句中的参数应该是按照字段的顺序传递的,而不是按照字段名称。因此,应该将 `Name`、`Nickname`、`Age` 改为对应的字段顺序(假设是第 2、3、4 个字段)。
2. 在执行 `rawQuery` 方法时,需要先调用 `moveToFirst` 方法将结果集指针移动到第一条记录上,然后才能获取数据。因此,在调用 `cursor.getString` 方法之前,应该先调用 `cursor.moveToFirst` 方法。
修改后的代码应该是这样的:
```
db.execSQL("update user set ?, ?, ? where Account=?", new Object[]{name, nickname, age, account});
Cursor cursor = db.rawQuery("select * from user where Account=?", new String[]{account});
if (cursor.moveToFirst()) {
editTextname.setText(cursor.getString(2));
editTextnickname.setText(cursor.getString(3));
editTextage.setText(cursor.getString(4));
}
cursor.close();
```
阅读全文