我无法更新两个文本框的值。我的目标是更改文本框的值并单击 Update_Value 按钮来更新数据库。
我收到此错误:
sqlite3.OperationalError: near "?": syntax error
我想实现什么目标?在文本框
x
中显示值 50
。在文本框 y
中显示值 60
。例如,我想修改文本框x
并将50
替换为55
,然后单击按钮。因此,我希望将数据库中具有 50
的值 id = 1
替换为 55
。与文本框 y
相同,对应于 id = 2
x = ttk.Entry(self, width=7)
x.place(x=420, y=30)
y = ttk.Entry(self, width=7)
y.place(x=420, y=55)
def Update_Value():
new_connection = sqlite3.connect('...')
connect = new_connection.cursor()
connect.execute("UPDATE Valori_Textbox SET valori=?", (x.get(), y.get(),))
button1 = Button(root, text="Update Value", command= Update_Value)
button1.place(x=0, y=0)
简单的数据库是:
CREATE TABLE "Valori_Textbox" (
"id" INTEGER,
"valori" INTEGER,
PRIMARY KEY("id")
);
INSERT INTO Valori_Textbox
(`valori``)
VALUES
('50'),
('60');
要回答您的问题,您可以通过两种方式添加
根据id单独更新
# Update the row with id=1
connect.execute("UPDATE Valori_Textbox SET valori=? WHERE id=1", (x.get(),))
# Update the row with id=2
connect.execute("UPDATE Valori_Textbox SET valori=? WHERE id=2", (y.get(),))
或在一行中更新它们
connect.execute("UPDATE Valori_Textbox SET valori = CASE id WHEN 1 THEN ? WHEN 2 THEN ? END", (x.get(), y.get()))
这两者都会相应地更新两行的值
为您提供完整的脚本,请尝试下面 - 希望这会有所帮助
import sqlite3
import tkinter as tk
from tkinter import ttk
def Update_Value():
new_connection = sqlite3.connect('your_database.db') # Replace with your database file
connect = new_connection.cursor()
connect.execute("UPDATE Valori_Textbox SET valori = CASE id WHEN 1 THEN ? WHEN 2 THEN ? END", (x.get(), y.get()))
new_connection.commit() # Commit the changes to the database
new_connection.close() # Close the database connection
root = tk.Tk()
x = ttk.Entry(root, width=7)
x.place(x=420, y=30)
y = ttk.Entry(root, width=7)
y.place(x=420, y=55)
button1 = tk.Button(root, text="Update Value", command=Update_Value)
button1.place(x=0, y=0)
root.mainloop()