所以我之前发现这个非常有用的代码片段创建了输入框,当它们被创建时我可以编辑它们内部的内容。加载的数据来自SQL表。一旦我对输入框进行了编辑,我想提交数据以覆盖之前在该sql记录中的数据,因为它正在被编辑。我发现的代码就是:
for item in selectedetails:
entry = Entry(top2)
entry.insert(0, item)
entry.pack()
entries.append(entry)
我希望它能够输入sql代码。我试过这个,但它不起作用。我想我做错了。
def submitedit():
for entry in entries:
print(entry.get())
db = sqlite3.connect('TestFile')
cursor = db.cursor()
cursor.execute('''UPDATE Table SET ID=?, Name=?, Desc=? WHERE ID=?''',
("?"," ?"," ?").format(entry.get()))
cursor.close()
db.commit()
db.close()
我也试过这个:
db = sqlite3.connect('TestFile')
cursor = db.cursor()
cursor.execute('''UPDATE Table SET ID=?, Name=?, Desc=? WHERE ID=?''',
(entry.get())
cursor.close()
db.commit()
db.close()
感谢。
答案 0 :(得分:0)
with sqlite3.connect('TestFile') as db:
cursor = db.cursor()
cursor.row_factory = sqlite3.Row
sql = "UPDATE Table Name=?, Desc=? WHERE ID=?"
cursor.execute(sql,(Name,Descr))
db.commit()
请注意,将值放在cursor.execute
行中的顺序必须与sql变量中使用的顺序匹配,否则将在错误的时间使用错误的值。此外,我已经取出了设置ID,因为你正在搜索哪个我猜测是你的主键,在数据库中你不应该编辑主键。主键也应自动递增。