如何修复“MySQLConverter”对象没有针对清单输入pythonmysql的属性“\u entry”到“umysql”?

2024-10-04 11:23:44 发布

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

我对Python相当陌生,但是对于团队设计项目,我需要创建一个代码,将信息输入到连接到mysql表的Tkinter窗口中,并相应地更新该表。如果再次输入相同的ID,则应更新数量+1:

from Tkinter import*
import tkMessageBox
import tkFont
import mysql.connector
import time



def AddItem():
    print "Added Item"
    print "ID:" + ID.get()
    print "Item Name:" + ItemName.get()
    print "Price Per Item:" + PricePerItem.get()
    print "Manufacturer:" + Manufacturer.get()

s=插入库存。。。如果抛出循环,我可以将信息输入Tkinter窗口,但当我选择Add Item按钮时,会出现以下错误:

编程错误:无法处理格式参数;“MySQLConverter”对象没有属性“\u entry”to“u mysql”

^{pr2}$

我已经试了好几个小时用“s”来做各种事情,但是我很难找到正确的语法来使用。在

下面是Tkinter窗口代码,如果有帮助的话。在

def InformationInput():
    BigFont=tkFont.Font(family="Arial", size=14, weight="bold")
    root.title("Enter Item Information") 
    root.geometry("1000x400")
    root.bind("<Return>", lambda event: AddItem())
    lbl1 = Label(root, text="ID:")
    lbl2 = Label(root, text="Item Name:") 
    lbl3 = Label(root, text="Price Per Item:")
    lbl4 = Label(root, text="Manufacturer:")
    lbl9 = Label(root, text="Enter Item Information", height=3, fg="red", font=BigFont)

    global ID, ItemName, PricePerItem, Manufacturer
    ID = Entry(root, width=25, textvariable=ID)
    ItemName = Entry(root, width=20, textvariable=ItemName) 
    PricePerItem = Entry(root, width=10, textvariable=PricePerItem) 
    Manufacturer = Entry(root, width=25, textvariable=Manufacturer)
    button1 = Button(root, text="Add Item", command=AddItem, width=15) 
    button2 = Button(root, text="Clear Entries", command=ClearEntries, width=15) 
    button3 = Button(root, text="Exit", command=root.destroy, width=15)

    lbl9.grid(column=2, row=1, columnspan=5) 
    lbl1.grid(column = 1, row = 4, sticky="nw") 
    ID.grid(column = 2, row = 4, sticky="nw") 
    lbl2.grid(column = 3, row = 4) 
    ItemName.grid(column = 4, row = 4) 
    lbl3.grid(column = 5, row = 4) 
    PricePerItem.grid(column = 6, row = 4, sticky="w")
    lbl4.grid(column = 3, row = 10)
    Manufacturer.grid(column = 4, row = 10)
    button1.grid(column=3, row=15, sticky="e", pady=20) 
    button2.grid(column=4, row=15) 
    button3.grid(column=5, row=15, sticky="w")



root = Tk()
ID = IntVar()
ItemName = StringVar() 
PricePerItem = IntVar() 
Manufacturer = StringVar() 
Quantity = IntVar()

InformationInput() 
root.mainloop() 

Tags: textimportidcolumnrootitemwidthlabel
1条回答
网友
1楼 · 发布于 2024-10-04 11:23:44

您必须在查询中使用参数标记,否则数据库驱动程序(在本例中为MySQL Connector/Python)将通过错误。此外,还必须传递可以转换的值。MySQLConverter不知道如何转换entry-对象,所以它告诉你它不能转换它(尽管它可以更显式一些)。在

以下是一个示例(简化):

^{1}$

我冒昧opening a bug report改进了错误消息。在

其他备注:我认为插入时不需要提供ID?通常是自动递增。在

相关问题 更多 >