Python SQLite更新函数不工作

2024-09-27 07:27:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python3.7.5和SQLite3.X以及Tkinter(但这与此无关),我似乎无法更新名为“Account”的表

try:
    Cursor.execute("""CREATE TABLE Account (
        Application text,
        Username text,
        Password text)""")
except sqlite3.OperationalError:
    Cursor.execute("""UPDATE Account SET
        Application = :NewApp,
        Username = :NewUser,
        Password = :NewPass
        WHERE oid = :oid""",
        {"NewApp": NewApplicationE.get(),
         "NewUser": NewUsernameE.get(),
         "NewPass": NewPasswordE.get(),
         "oid": X[3]
        })

try位只是在还没有表的情况下创建表,如果有,则继续更新表 我知道有一些列叫做Application、Username、Password和变量。get()都返回正确的字符串 oid为X[3]表示一个整数

程序运行,但实际上似乎没有更新任何内容。 任何格式或一般的帮助都将不胜感激


Tags: textexecutegetapplicationtkinterusernameaccountpassword
1条回答
网友
1楼 · 发布于 2024-09-27 07:27:36

我认为你只需要承诺你的改变 我假设你从一个连接处得到游标, 例如,类似的方法应该会起作用:

import sqlite3
conn = sqlite3.connect('example.db')c = conn.cursor()
Cursor = conn.cursor()
try:
    Cursor.execute("""CREATE TABLE Account (
        Application text,
        Username text,
        Password text)""")
     conn.commit()

except sqlite3.OperationalError:
    Cursor.execute("""UPDATE Account SET
        Application = :NewApp,
        Username = :NewUser,
        Password = :NewPass
        WHERE oid = :oid""",
        {"NewApp": NewApplicationE.get(),
         "NewUser": NewUsernameE.get(),
         "NewPass": NewPasswordE.get(),
         "oid": X[3]
        })
        conn.commit()

conn.close()

参考https://docs.python.org/3/library/sqlite3.html

相关问题 更多 >

    热门问题