不知为什么我总是得到一个
findSenGroup = cur.executemany("UPDATE SEN_Table SET SenNumber = " + senNumStr + " WHERE FormName='" + nameGroup + "'")
TypeError: function takes exactly 2 arguments (1 given) error
使用此更新语句:

findSenGroup = cur.executemany("UPDATE SEN_Table SET SenNumber = " + senNumStr + " WHERE FormGroup='" + nameGroup + "'")

下表所示
python - Python SQLite:更新语句TypeError:函数正好接受2个参数(给定1个)-LMLPHP
senNumStr是我要将列更新为的数字。
nameGroup是要添加tp的行的名称
`````

最佳答案

我不确定您只执行一条语句时是否需要在这里使用executemany。你可以简单地使用:

cur.execute("UPDATE SEN_Table SET SenNumber = " + senNumStr + " WHERE FormName='" + nameGroup + "'")

不过,最好使用参数化查询,而不是格式化字符串,以避免SQL注入漏洞:
cur.execute("UPDATE SEN_Table SET SenNumber = ? WHERE FormName = ?", (senNumStr, nameGroup))

09-18 11:46