Python sqlite3 保存数据
Python sqlite3 saving data
有谁知道我该如何纠正这个问题,因为这段代码没有将数据保存在数据库中?
def save():
#FUNCTIONS
def savenow():
params = [i.get(), n.get(), p.get(), r.get(), t.get(), a.get(), "None", "None"]
if not os.path.exists("C:/Users/Dhruv/DS"):
os.makedirs("C:/Users/Dhruv/DS/")
connect = sqlite3.connect("C:/Users/Dhruv/DS/data.db")
connect.execute("""CREATE TABLE IF NOT EXISTS FD
(ID TEXT NOT NULL,
NAME TEXT NOT NULL,
P INT NOT NULL,
R INT,
T INT,
A INT NOT NULL,
D1 DATE,
D2 DATE);""")
tobeexec = "INSERT INTO FD(ID, NAME, P, R, T, A, D1, D2) VALUES(?, ?, ?, ?, ?, ?, ?, ?)"
connect.execute(tobeexec, params);
connect.close()
我只想将数据写入数据库,但是当我试图检索它时,它显示数据库是空的...
无论如何提前谢谢...
connect.execute(tobeexec, params);
connect.commit()
connect.close()
除了最佳答案外,还可以考虑使用 Connection 对象作为上下文管理器,它很有用,它在 SQLite3 API :
connect = sqlite3.connect("C:/Users/Dhruv/DS/data.db")
try:
with connect:
connect.execute(...) # Your SQL statement
except Exception as err:
# Do what you want with the Exception
如果您在 with connect
中的语句没有引发错误,事务将自动提交。如果出现问题,事务将回滚。
(另一个答案可能是在加载数据库后将 isolation_level 设置为 None,这将暗示一个 autocommit 模式)
有谁知道我该如何纠正这个问题,因为这段代码没有将数据保存在数据库中?
def save():
#FUNCTIONS
def savenow():
params = [i.get(), n.get(), p.get(), r.get(), t.get(), a.get(), "None", "None"]
if not os.path.exists("C:/Users/Dhruv/DS"):
os.makedirs("C:/Users/Dhruv/DS/")
connect = sqlite3.connect("C:/Users/Dhruv/DS/data.db")
connect.execute("""CREATE TABLE IF NOT EXISTS FD
(ID TEXT NOT NULL,
NAME TEXT NOT NULL,
P INT NOT NULL,
R INT,
T INT,
A INT NOT NULL,
D1 DATE,
D2 DATE);""")
tobeexec = "INSERT INTO FD(ID, NAME, P, R, T, A, D1, D2) VALUES(?, ?, ?, ?, ?, ?, ?, ?)"
connect.execute(tobeexec, params);
connect.close()
我只想将数据写入数据库,但是当我试图检索它时,它显示数据库是空的... 无论如何提前谢谢...
connect.execute(tobeexec, params);
connect.commit()
connect.close()
除了最佳答案外,还可以考虑使用 Connection 对象作为上下文管理器,它很有用,它在 SQLite3 API :
connect = sqlite3.connect("C:/Users/Dhruv/DS/data.db")
try:
with connect:
connect.execute(...) # Your SQL statement
except Exception as err:
# Do what you want with the Exception
如果您在 with connect
中的语句没有引发错误,事务将自动提交。如果出现问题,事务将回滚。
(另一个答案可能是在加载数据库后将 isolation_level 设置为 None,这将暗示一个 autocommit 模式)