使用WHERE语句SQLite连接tkinter输入

时间:2017-06-26 12:23:55

标签: python tkinter sqlite

我正在开发一个计算机科学项目,我必须使用带有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个。

  

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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