我用一個名爲product的表做了一個數據庫。當我運行下面的代碼時,出現錯誤 - sqlite3.OperationalError:no such table:product。我已經使用數據庫瀏覽器檢查並確定表存在。有任何想法嗎?代碼和文件都在同一個文件夾中。由於sqlite python數據庫錯誤 - 沒有這樣的表
from tkinter import *
from tkinter import ttk
import sqlite3
import os.path
class Product:
db_name = 'database.db'
def __init__(self, wind):
self.wind = wind
self.wind.title('IT Products')
frame = LabelFrame (self.wind, text = 'Add new record')
frame.grid (row = 0, column = 1)
Label (frame, text = 'Name: ').grid (row = 1, column = 1)
self.name = Entry (frame)
self.name.grid(row = 1, column = 2)
Label (frame, text = 'Price: ').grid (row = 2, column = 1)
self.price = Entry (frame)
self.price.grid(row = 2, column = 2)
ttk.Button (frame, text= 'Add record').grid (row = 3, column =2)
self.message = Label (text = '',fg = 'red')
self.message.grid (row = 3, column = 0)
self.tree = ttk.Treeview (height = 10, colum =2)
self.tree.grid(row = 4, column = 0, columnspan = 2)
self.tree.heading('#0', text = 'Name', anchor = W)
self.tree.heading(2, text = 'Price', anchor = W)
ttk.Button (text = 'Delete record').grid (row = 5, column = 0)
ttk.Button (text = 'Edit record').grid (row = 5, column = 1)
self.viewing_records()
def run_query (self, query, parameters =()): # database connection
with sqlite3.connect(self.db_name) as conn:
cursor = conn.cursor()
query_result = cursor.execute (query, parameters)
conn.commit()
return query_result
def viewing_records(self):
records = self.tree.get_children()
for element in records:
self.tree.delete (element)
query = 'SELECT * FROM product ORDER BY name DESC'
db_rows = self.run_query (query)
for row in db_rows:
self.tree.insert ('', 0, text = row[1], values = row[2])
if __name__ == '__main__':
wind = Tk()
application = Product (wind)
wind.mainloop()
忘記採取這些了!但仍然沒有運氣 – maz86
只被添加,以確保它檢查正確的數據庫取出它,但沒有luckBASE_DIR = os.path.dirname(os.path.abspath(__ file__)) db_path = os.path.join(BASE_DIR,「 database.db「) – maz86
@ maz86如果您修改了代碼並仍然出現錯誤(相同錯誤或其他錯誤),請使用您擁有的最新代碼和錯誤更新*問題。 – DeepSpace