使用QSqlQuery更新sqlite3数据库

2024-04-26 11:55:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用pyqt开发一个简单的gui,并试图更新我的数据库,但迄今为止没有任何运气。我对qt、数据库和python都很陌生;)所以我不知道我的代码有什么问题,也许有人能帮我一点忙。在

在使用python(3)和sqltie3时,我可以这样更新我的数据库:

cur.execute('''UPDATE news SET Raw=? WHERE id=?''', (raw, news_id))

但pyqt的工作原理是这样的:

^{pr2}$

我试过了:

query.exec_("UPDATE news SET Raw = ? WHERE Id = ?", (raw, news_id))

导致此错误的原因:

TypeError: arguments did not match any overloaded call:
QSqlQuery.exec_(str): too many arguments
QSqlQuery.exec_(): too many arguments

在《使用qt进行快速gui编程》一书中,他是这样进行查询的(不完全是那样,但我尝试了适应它):

query.exec_('''UPDATE news SET Raw={0} WHERE id={1}'''.format(raw, news_id))

它似乎什么也没做。在

而且(似乎也什么都没做):

raw = 'test'
query.prepare("UPDATE news SET (Raw) VALUES (:raw) WHERE Id = 9 ")
query.bindValue(":raw", raw)
#query.bindValue(":news_id", 9)
query.exec_()

我在这里和其他地方找到了一些东西,但到目前为止还没有任何运气。在


Tags: id数据库rawupdateguiwhereqtquery
1条回答
网友
1楼 · 发布于 2024-04-26 11:55:18

您似乎还没有尝试正确的语法,应该是:

query.prepare(QString("UPDATE news SET Raw = :value WHERE id = :id "));
query.bindValue(":value", raw);
query.bindValue(":id", news_id);

相关问题 更多 >