【问题标题】:Connecting tkinter input with a WHERE statement SQLite使用 WHERE 语句 SQLite 连接 tkinter 输入
【发布时间】:2017-11-29 06:58:30
【问题描述】:

我正在从事一个计算机科学项目,我必须使用带有 GUI 的 SQLite3 制作一个数据库程序(所以我使用 tkinter)

现在我想用 WHERE 语句更改表中项目的值,但这不起作用。这是我的代码(我已经连接了数据库)。

def show():
    Name = tk.Label(self, text="Name")
    Name.grid(row=2, column=0)
    NameA = tk.Entry(self)
    NameA.grid(row=2, column=1)
    var1 = tk.IntVar()
    vijfprA = tk.Checkbutton(self, text="Vijf procent", variable=var1)
    vijfprA.grid(row=4, column=1)

def veranderen():
    if var1.get() == 1:
        koe = NameA.get()
        c.execute('''UPDATE reserveringen SET deelbetaald = "Yes" WHERE 
        naamgezelschap = (?)''', (koe))
        conn.commit()

button2 = tk.Button(self, text="Invoegen", command=veranderen)
button2.grid(row=5, column=1)

这只是错误开始的部分。这是我得到的错误:

> sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用 1,提供了 8 个。

谢谢!!

【问题讨论】:

  • 这表明无论koe 是什么,它都有 8 个值,但您的 SQL 只允许 1 个。您要使用其中的哪个值?

标签: python tkinter sqlite


【解决方案1】:

(koe) 是单个值,(koe,) 是一个元组。 c.execute 方法需要一个元组:

c.execute('''UPDATE reserveringen SET deelbetaald = "Yes" WHERE 
    naamgezelschap = (?)''', (koe,))

【讨论】:

    猜你喜欢
    • 2012-02-09
    • 1970-01-01
    • 2021-05-29
    • 1970-01-01
    • 2016-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多