gpt4 book ai didi

android - 奇数数据库错误 : Empty values?

转载 作者:搜寻专家 更新时间:2023-11-01 08:16:05 26 4
gpt4 key购买 nike

我正在创建一个查看记录并将其数据显示给用户进行修改的 Activity 。完成所有操作后,只需单击一个按钮即可将数据保存回数据库。但是,一旦节省时间,我就会收到一个不寻常的“java.lang.IllegalArgumentException:空值”错误。我认为这是我这边的 SQL 代码错误,但我对 SQL 的了解还不够多,无法找到它。我可以让几只眼睛看看我做错了什么吗?

谢谢~艾顿

这里是声明保存按钮和设置监听器的地方。 mBoundService 是托管数据库及其调用的服务。 DevicesTable 是一个包含表名和列名的类。 DevicesTable.gt_fields[0]是autoincrementID,然后是serial,name,first seen columns

public void init() {        
mDevName = (EditText)findViewById(R.id.dv_name);
mCurReads = (TextView)findViewById(R.id.dv_readings);
mSave = (Button)findViewById(R.id.dv_save);
mSave.setOnClickListener(new OnClickListener() {
@Override public void onClick(View arg0) {
mBoundService.updateRecord(DevicesTable.gt_name, mId, DevicesTable.g_fields[2], mDevName.getText().toString());
}
});
}

这是数据库调用本身。

/**
* Updates a record at the given table with the given record.
* @param table The table to update
* @param id The id of the actual record. Do not pass the incorrect id!
* @param column The column in which the data is changing
* @param data The data that is to be changed to
*/
public void updateRecord(String table, String id, String column, String data) {
mDB.update(table, null, "SET " + column + " = '" + data + "',", new String[]{"id=" + id});
}

最佳答案

您需要传入一个 ContentValues 对象来告诉数据库更新行的哪些列中有哪些值。第三个和第四个参数中的字符串构成一个 WHERE 子句,指示应更新哪些行。例如:

ContentValues values = new ContentValues();
values.put("foo", 123);
values.put("bar", 456);

db.update("some_table", values, "id=789", null);

这相当于发出查询

UPDATE some_table SET foo = 123, bar = 456 WHERE id = 789

您的代码试图将整个查询填充到 WHERE 子句中,而 update() 阻止您继续前进,因为 values 参数为 null

关于android - 奇数数据库错误 : Empty values?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4808744/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com