PYODBC错误07002参数太少

2024-10-01 13:41:25 发布

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

简单地说,这段代码获取一个库存项的数量,并通过从其中一个GUI元素中添加一个数字来更新值。每当我尝试运行以下代码时:

Change = self.ui.Modify_Stock_Screen_Change.text()
Change = int(Change)
DBConnect = pyodbc.connect('Driver={Microsoft Access Driver (*.mdb, *.accdb)}; Dbq=H:\\Computer Science\\X\\Y\\Z\\Database.accdb;')
DBSelect = DBConnect.cursor()
DBSelect.execute("select * from Stock where Stock_Item = ?", self.ui.Modify_Stock_Screen_Item.currentText())
TableRow= DBSelect.fetchone()
for Field in TableRow:
    CurrentQuantity = TableRow[1]
    CurrentQuantity = int(CurrentQuantity)
    UpdatedQuantity = int(CurrentQuantity + Change)
    DBSelect.execute('update Stock set Current_Quantity = UpdatedQuantity where Stock_Item = ?', self.ui.Modify_Stock_Screen_Item.currentText())
    DBConnect.commit()

我得到以下错误:

^{pr2}$

Tags: 代码selfuidriverstockitemchangescreen
1条回答
网友
1楼 · 发布于 2024-10-01 13:41:25

这里的问题是Python变量名UpdatedQuantity包含在SQL命令文本中,但是数据库引擎不知道这样一个Python变量存在,也不知道它的值是什么。该变量需要包含在传递到查询的参数中:

sql = 'update Stock set Current_Quantity = ? where Stock_Item = ?'
params = (
    UpdatedQuantity, 
    self.ui.Modify_Stock_Screen_Item.currentText()
    )
DBSelect.execute(sql, params)

相关问题 更多 >