【问题标题】:Exporting data from Entry widgets into SQL code将数据从 Entry 小部件导出到 SQL 代码
【发布时间】:2016-04-07 14:29:03
【问题描述】:

所以我之前发现了这段非常有用的代码,它创建了输入框,当它们被创建时,我可以编辑它们里面的内容。加载的数据取自 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()

谢谢。

【问题讨论】:

    标签: python sql tkinter sqlite


    【解决方案1】:
    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,因为这是您正在搜索的内容,我猜这是您的主键,在数据库中您不应该编辑主键。主键也应该自动递增。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-01
      • 2019-09-12
      • 1970-01-01
      • 2014-07-26
      相关资源
      最近更新 更多