在python中删除sqlite3数据库行

时间:2020-04-30 03:53:34

标签: python-3.x

我已经阅读了许多有关如何完成此操作的主题,但是由于某些原因,它无法正常工作。

我需要使用条目小部件中的字符串变量从数据库中删除行,因为在数据库查询中使用了“ WHERE(变量名)=”。 条目小部件数据存储为Snippet_Name,并且在数据库中将相同的名称用作列名称。

数据库有7列,但是我仅使用1列进行查询,并且我想删除包含入口变量的完整行。我尝试了DELETE的变体,但没有成功。

正在使用的代码是:

def delete_code():
    try:
        snippetname = Snippet_Name.get()
        sql_delete_query = ('DELETE FROM Code WHERE Snippet_Name = "?"', (snippetname))
        c.execute(sql_delete_query)
        conn.commit()

    except:
        messagebox.showerror('PYSnippet', 'Failed to delete record')

需要一些帮助和提示。

1 个答案:

答案 0 :(得分:0)

我遍历了查询,发现了2个需要解决的错误才能纠正此问题。第一个问题是我有?用引号括起来,但不应放在引号中。第二个问题是忘记对变量使用逗号。

def delete_code():
    try:
        snippetname = Snippet_Name.get()
        sql_delete_query = ('DELETE FROM Code WHERE Snippet_Name = ?' (snippetname,))
        c.execute(sql_delete_query)
        conn.commit()

    except:
        messagebox.showerror('PYSnippet', 'Failed to delete record')