我正在構建一個 todo 應用程式并為此使用了 sql-lite python 資料庫。我添加了 clear 命令并且一切順利,直到我發現當我清除資料庫然后嘗試查看它時,我的 pyqt 應用程式停止回應。資料庫代碼:
def db(self):
title = self.textEdit.toPlainText()
desc = self.textEdit_2.toPlainText()
conn = sqlite3.connect('mydb.db')
cur = conn.cursor()
cur.execute("""CREATE TABLE IF NOT EXISTS task
(title text, desc text)
""")
cur.execute("INSERT INTO task VALUES(?,?)", (title, desc))
conn.commit()
cur.close()
conn.close()
查看資料庫的代碼[在qt應用程式中]
def showdb(self):
conn = sqlite3.connect('mydb.db')
cur = conn.cursor()
str = ''
str2 = ''
self.tableWidget.setRowCount(50)
tableindex = 0
amount = len(cur.execute('SELECT * FROM task').fetchall())
if amount > 0:
for x in cur.execute('SELECT * FROM task'):
str = ''.join(x[0])
str2 = ''.join(x[1])
self.tableWidget.setItem(tableindex, 0, QtWidgets.QTableWidgetItem(str))
self.tableWidget.setItem(tableindex, 1, QtWidgets.QTableWidgetItem(str2))
tableindex = 1
else:
pass
清除資料庫的代碼[點擊后停止回應]
def delete(self):
conn = sqlite3.connect('mydb.db')
cur = conn.cursor()
cur.execute('DROP TABLE task')
conn.commit()
uj5u.com熱心網友回復:
問題出在您的洗掉功能上,洗掉資料庫后您不會再次創建它。這行代碼應該修復錯誤。
def delete(self):
conn = sqlite3.connect('mydb.db')
cur = conn.cursor()
cur.execute('DROP TABLE task')
cur.execute("""CREATE TABLE IF NOT EXISTS task
(title text, desc text);
""")
conn.commit()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/311421.html
