我有一个面向对象的函数来更新库存表,但是当通过单击按钮执行该函数时,它不会更新并使程序崩溃,有人能看到我该函数中的错误吗?我正在QtableWidget中选择要更新的产品
def editarProd(self):
cursor = banco.conexao.cursor()
query = """SELECT E.IDPRODUTO,
E.CODBARRA, E.PRODUTO,
C.CATEGORIA, printf("%.2f",E.ESTOQUE),
printf("%.2f",E.ESTOQUE_MIN), printf("%.2f",E.VALOR_CUSTO),
printf("%.2f",E.VALOR_VENDA), printf("%.2f",E.VALOR_VENDA-E.VALOR_CUSTO) AS "LUCRO",
F.FORNECEDOR
FROM ESTOQUE E
INNER JOIN FORNECEDOR F
ON E.ID_FORNECEDOR = F.IDFORNECEDOR
INNER JOIN CATEGORIA C
ON E.ID_CATEGORIA = C.IDCATEGORIA
ORDER BY E.PRODUTO"""
result = cursor.execute(query)
for row_number in enumerate(result):
if row_number[0] == self.listaprodutos.currentRow():
data = row_number[1]
IdProd = data[0]
codbarra = self.codigotext.text()
produto = self.produtotext.text()
estoque = self.estoquetext.text()
estoquemin = self.estoquemintext.text()
valorcusto = self.precocustotext.text()
valorvenda = self.precovendatext.text()
Forn = self.fornecedorcomboBox.currentData()
Cat = self.categoriacomboBox.currentData()
try:
cursor.execute = (f"""UPDATE ESTOQUE
SET CODBARRA ='{codbarra}',
PRODUTO ='{produto}',
ESTOQUE = {estoque},
ESTOQUE_MIN = {estoquemin},
VALOR_CUSTO = {valorcusto},
VALOR_VENDA = {valorvenda},
ID_CATEGORIA = {Cat},
ID_FORNECEDOR = {Forn}
WHERE IDPRODUTO = {IdProd}""")
banco.conexao.commit()
self.LoadDatabase ( )
self.limparcampos ( )
except Exception:
msg = QMessageBox ( )
msg.setText ( "Preencha os Campos" )
msg.setWindowTitle ( "Dados não inseridos!" )
msg.setStandardButtons ( QMessageBox.Ok | QMessageBox.Cancel )
msg.exec_ ( )
我通过一些改变解决了我的问题,它工作得很好。 遵循代码
相关问题 更多 >
编程相关推荐